代码实现:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.第二个完全数是28, //它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加, //编程找出1000以内的所有完数。

时间:2023-03-09 14:29:16
代码实现:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.第二个完全数是28, //它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加, //编程找出1000以内的所有完数。
import java.util.ArrayList;
import java.util.List;
//一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.第二个完全数是28,
//它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,
//编程找出1000以内的所有完数。
public class Test {
public static void main(String[] args) {
System.out.print("完数有:");
for (int x = 1; x < 1000; x++) {
int k = x;
List<Integer> sb = new ArrayList<>();
for (int i = 2; i <= k; i++) {
if (i == k) {
break;
}
if (k % i == 0) {
sb.add(i);
}
}
int sum = 1;
for (Integer ss : sb) {
sum = sum + ss;
}
if (sum == x) {
System.out.print(x + " ");
sum = 1;
}
}
}
}