#include <stdio.h>
int main()
{
int i, j, s, sum = 0;
for (i = 2; i <= 10000; i++)
{
s = 0;
for (j = 1; j < i; j++)
{
if (i % j == 0)
s += j;
}
if (s == i)
{
sum += i;
}
}
printf("%d", sum);
return 0;
}
把k=0放在外层循环里,因为每次外层循环都要让k=0,否则第二层循环开始第二次及往后的次数时k已经有一个不等于0的值,像现在这样只能找出第一个"完数"。