int input = 1;
while (input < 1000) {
input++;
int[] num = new int[input / 2];
for (int i = 1; i < (input / 2 + 1); i++) {
if (input % i == 0) {
num[i - 1] = i;
}
}
int sum = 0;
for (int j : num) {
sum += j;
}
if (sum == input) {
System.out.println("完数=" + input);
}
}
这是我用java写的
首先,因子就不可能为0,所以s不能从0开始
内层两个while循环,可以套一起,分开写会有重复