题解 | #完全数计算#

完全数计算

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

import java.util.ArrayList;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        /**
         * 完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。
         *
         * 它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
         *
         * 例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
         *
         * 输入n,请输出n以内(含n)完全数的个数。
         *
         * 例如,考虑数字12,它可以被1, 2, 3, 4, 6, 12整除,因此1, 2, 3, 4, 6, 12就是12的约数
         */
        int n = in.nextInt();
        int count = 0;
        for (int i = 1; i <= n; i++) {
            ArrayList<Integer> list = new ArrayList<>();
            // j不包含其i本身
            for (int j = 1; j < i; j++) {
                if (i % j == 0) {
                    list.add(j);
                }
            }
            int result = 0;
            for (Integer integer : list) {
                // 所有约数相加
                result += integer;
            }

            if (result == i) {
                count++;
            }
        }
        System.out.println(count);
    }
}

全部评论

相关推荐

03-29 14:19
门头沟学院 Java
你背过凌晨4点的八股文么:加油同学,人生的容错率很高,只是一个暑期罢了,后面还有很多机会!
点赞 评论 收藏
分享
03-28 19:11
铜陵学院 C++
有礼貌的山羊追赶太阳:太典了,连笔试都没有开始就因为HC满了而结束了,而且还卡你不让你再投其他部门的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务