解决c语言完数及因子问题

img

img


有帅哥美女知道我这个程序逻辑哪里出错了吗,出来是空白的,实在不知道,求告知

1.for循环那里的结束条件应该是factor <= data / 2吧,因为如果data = 36,那么factor=18也是它的因子呀
2.每次判断一个数的时候factor_num都要设置为0,题主这里都没有设置了

可参考:https://www.runoob.com/cprogramming/c-exercise-example19.html

#include<stdio.h>
#define N 1000

int main()
{
    int i,j,k,n,sum;
    int a[256];
    for (i=2; i<=N; i++)
    {
        sum = a[0]=1;
        k=0;
        for (j=2; j<=(i/2); j++)
        {
            if (i%j==0)
            {
                sum += j;
                a[++k] = j;
            }
        }
        if (i == sum)
        {
            printf("%d its factors are ",i);
            for (n=0; n<=k; n++)
            {
                if (n != k)
                    printf("%d,",a[n]);
                else
                    printf("%d", a[n]);
            }
            printf("\n");
        }
    }
    return 0;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^