读书人

求大伙儿帮忙改错啊为什么不能输出100

发布时间: 2012-12-31 11:57:52 作者: rapoo

求大家帮忙改错啊为什么不能输出1000以内的完数????
本帖最后由 caopingtao 于 2012-12-04 21:10:35 编辑 #include<stdio.h>

int main()
{
int i, j, k, n,sum, a[100];

for(i = 2; i <= 1000; i++)
{
n = -1;
sum = 0;
for(j = 1; j < i; j++)
{
if(i % j == 0)
{
n++;
  a[n] = j;
  sum += j;
}
}
if(sum == i)
{
printf("%d its factors are ",sum);
for(k = 0; k <=n; k++)
printf("%d,", a[k]);
}
}

return 0;
}
[解决办法]


#include<stdio.h>

int main()
{
int i, j, k, n,sum, a[100];

for(i = 2; i <= 1000; i++)
{
n = -1;
sum = 0;
for(j = 1; j < i; j++)
{
if(i % j == 0)
{
n++;
a[n] = j;
sum += j;
}
}
if(sum == i)
{
printf("%d its factors are ",sum);
for(k = 0; k <=n; k++)
printf("%d,", a[k]);
printf("\n");
}
}

return 0;
}

[解决办法]
你的代码没问题,输出是:
6 its factors are:1,2,3,
28 its factors are:1,2,4,7,14,
496 its factors are:1,2,4,8,16,31,62,124,248,

读书人网 >C语言

热点推荐