找1000以内完数及其因子
#include
int main()
{
int i,n,x=1,sum=0;
for(x=2;x<=1000;x++)
{
for(i=1;i<=x;i++)
{
if(x%i==0);
sum=sum+i;
if(sum==x)
{
printf("%d,its factors are ",x);
for(i=1;i<=x;i++)
{
if(x%i==0)
printf("%d",i);
}
printf("\n");
}
}
}
return 0;
}
```
第9行,if(x%i==0); 分号去掉
第9行之前增加sum=0,对于每个x值,需要重新计算sum的值,因此计算前需要恢复为0
sum=0放for循环里边呀
#include<stdio.h>
int main()
{
int i,n,x=1,sum=0;
for(x=2;x<=1000;x++)
{
int sum=0;
for(i=1;i<=x;i++)
{
if(x%i==0)
sum=sum+i;
if(sum==x)
{
printf("%d,its factors are ",x);
for(i=1;i<=x;i++)
{
if(x%i==0)
printf("%d",i);
}
printf("\n");
}
}
}
return 0;
}