c语言完数1000之内求解,难死了

一个数如果恰好等于它的因子之和这个数就称为完数六的因子为123而6=1+2+3因此六是完数编程序找出1000之内的所有完数?
#include<stdio.h>
int main(){
int i,j;
int x=0;
for(i=1;i<=1000;i++){
for(j=1;j<=i;j++){
if(i%j==0){

        x+=j;
    }
    }
    if(2*i==x){
        printf("%d ",i);
    }
}
return 0;

}

一层循环就够了
if 6==i/100+i/10+i%10就是了
i/100得到百位数,低于100的得到0
i/10得到十位数,低于10得到0
i%10得到个位数