如何用c语言输出从2到n之间的完数,n为整数,在2与1000之间。

img

img


请问各位朋友 这个代码输出后 在十之内正确 一百之内也正确 为啥一千之内 就不正确啦?😣

第5行的目的是???
代码没啥问题,应该是100-1000之间没有完数吧

修改如下,供参考:

#include <stdio.h>
int main()
{
    int N = 10000, i, n, s;
    scanf("%d", &N);
    for (n = 2; n <= N; n++)
    {
        for (i = 1, s = 0; i <= n / 2; i++)
        {
            if (n % i == 0)
            {
                s = s + i;
            }
        }
        if (s == n)
        {
            printf("%d its factors are 1", n);
            for (i = 2; i <= n / 2; i++)
            {
                if (n % i == 0)
                    printf(" %d", i);
            }
            printf("\n");
        }
    }
    return 0;
}