完数指的是一个数恰好等于它的因子(除本身外)之和。例如,6 的因子为 1, 2, 3,而 1 + 2 + 3 = 6,所以 6 是一个完数。

我们可以写一个循环,将每个数的因子求出来,然后判断它们的和是否等于这个数本身。

以下是 Java 代码实现:

public class PerfectNumber {

    public static void main(String[] args) {

        for(int i = 1; i <= 1000; i++) {
            int sum = 0;
            for(int j = 1; j < i; j++) {
                if(i % j == 0) {
                    sum += j;
                }
            }
            if(sum == i) {
                System.out.println(i + '是完数');
            }
        }

    }

}

在这个程序中,我们首先用一个外层循环枚举 1000 以内的所有数,对于每个数,我们用一个内层循环求出它的因子之和。内层循环从 1 开始枚举到 i-1,如果 i 能够整除 j,说明 j 是 i 的一个因子,我们就将它加入到 sum 中。最后,如果 sum 等于 i,说明 i 是一个完数,我们就输出它。

上述程序的输出结果为:

6是完数
28是完数
496是完数

因为 1000 以内只有这三个数是完数。

Java 查找 1000 以内的完数 - 代码示例及解释

原文地址: https://www.cveoy.top/t/topic/nV0Y 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录