用c语言参考水仙花数的方法输出1000之内的所有完数

一个数如果恰好等于它的因子之和 这个数就称为“完数”。例如 6的因子为1 2 3 而6=1+2+3 因此6是“完数” 编程找出1000之内的所有完数
并按下面格式输出其因子
6: its factors are 1 2 3

供参考:

#include <stdio.h>
int main()
{
    int N = 1000, 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;
}