题解 | #完全数计算#

完全数计算

http://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84

import java.util.; import java.io.; public class Main{ public static void main(String[] args)throws IOException{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String str = null;

    while((str = in.readLine()) != null){
        int count = 0;
        int num = Integer.parseInt(str);
        for(int i = 2;i <= num;i++){
            int temp = (int)Math.pow(2,i)-1;
            if(is_prime(i) && is_prime(temp)){
                int m = (int)((Math.pow(2,i) -1 ) * Math.pow(2,i-1));
                if(m <= num) {
                    count ++;
                }else{
                    break;
                }
            }
        }
        System.out.println(count);
    }
    
}
public static boolean is_prime(int n){
    boolean flag = true;
    for(int i = 2;i <= Math.sqrt(n);i ++){
        if(n % i == 0) {
            flag = false;
            break;
        }
    }
    return flag;
}

}

我居南半坡 文章被收录于专栏

多刷题,积蓄力量,欢迎讨论

全部评论

相关推荐

点赞 评论 收藏
分享
每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务