题解 | #完全数计算#

完全数计算

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

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            int count = 0;//初始化完全数个数为0
            for (int i = 4; i <= n; i++) {//遍历n以下,从4开始的每个数字(123因数都只有1和自身),判断是否为完全数
                int sum = 1;//初始化真因子之和为1
                for (int j = 2; j <= Math.sqrt(i); j++) {//质数成对出现,因此从2开始循环至开根即可获取到所有质数
                    if (i % j == 0) {//求解真因子之和
                        sum = sum + (i / j) + j;
                    }
                }
                if (sum == i) {//若真因子之和等于本身,完全数数量+1
                    count += 1;
                }
            }
            System.out.println(count);
        }
    }
}

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务