Java 查找 1000 以内的完数 - 代码示例及解释
完数指的是一个数恰好等于它的因子(除本身外)之和。例如,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 以内只有这三个数是完数。
原文地址: https://www.cveoy.top/t/topic/nV0Y 著作权归作者所有。请勿转载和采集!