java题解 | #完全数计算#

完全数计算

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;
        //6是最小完全数
        for (int i = 6; i <= n; i++) {
            // 求约数只需要遍历到开方即可
            int val = (int)Math.sqrt(i);
            int sum = 1;
            for (int j = 2; j<=val; j++) {
                if (i%j == 0) {
                    // 把一对约数都加进去
                    sum+=j;
                    sum+=i/j;
                }
            }
            if (sum == i) {
                count++;
            }
        }
        System.out.println(count);
    }
    sc.close();

} }

全部评论

相关推荐

脾气小祖宗:这简历摸到都得狠狠地消毒液洗手😂
点赞 评论 收藏
分享
09-14 17:23
门头沟学院
故事和酒66:所以说副业很重要,程序员干到40岁,再怎么也赚300万了,吃吃利息也够活下去
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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