题解 | #完全数计算#

完全数计算

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

import java.util.Scanner;
import java.io.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String str = "";
        while((str = reader.readLine()) != null){
            int num = Integer.parseInt(str);
            int count = 0;
            // 不是偶数的话,不可能是
            for(int i=6;i<=num;i+=2){
                int sum = 0;
                for(int j=2;j<=Math.sqrt(i);j++){
                    if(i%j == 0){
                        // 直接加上两个因子,提高效率
                        sum = sum + j + i/j;                  
                    }
                }
                // 加上刚开始的1
                sum++;
                if(sum == i){
                    count++;
                }
            }
            System.out.println(count);
        }
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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