int main()
{
int i,j,sum;
for(i=3;i<=10000;i++)
{
sum=1;//注意sum只能在循环内部初始化,否则每次大循环开始sum不为1
for(j=2;j
{
if((i%j)==0)
{
sum=sum+j;
}
}
if(sum==i)
{
printf("%d ",i);
}
}
return 0;
}
内层循环是用来判断i是否为素数的啊
素数判断,是检查从2到i-1的所有整数中,是否有某个整数能够整除i,如果可以,那么i就不是素数。所以for(j=2;j<i;j++)
你想 j 从几开始呢?从1 开始没有意义啊