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; } } } }