为什么什么都没有输出

找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循环里边呀

img

#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;
}