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;
}
不知道你这个问题是否已经解决, 如果还没有解决的话: