各位老师,请帮忙看一下错误在哪里!
题目是:一个数如果巧虎等于它的因子之和,这个数就称为完数。例如,6的因子是1,2,3,而1加2加3等于6.编程找出1000以内的完数,输出格式为 6 its factors are 1,2,3
程序为
#include "stdafx.h"
#include <stdio.h>
int main(int argc, char* argv[])
{ int i,a[100],j,b,c,sum;
for(i=1;i<=10;i++)
{b=0;sum=0;
for(j=1;j<=i;j++)
{if(i%j==0)
{a[b]=j;b++;}
}
for(c=0;c<b;c++)
sum+=a[c];
if(sum==i)
{printf("%d its factors are",i);
for(c=0;c<b;c++)
printf("%d,",a[c]);}
}
printf("\n");
return 0;
}
c
[解决办法]
就你的算法哈;
for(i=1;i<=1000;i++)
for(j=1;j<i;j++)
两处错了
[解决办法]
6 its factors are1,2,3,
28 its factors are1,2,4,7,14,
496 its factors are1,2,4,8,16,31,62,124,248,
结果就是这样了,输出可以改下
printf("\n%d its factors are",i);