请问一下哪有问题啊,输出来结果为0

img


#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的值,像现在这样只能找出第一个"完数"。