#include
#include
void main()
{
int m,i,s=0;
for(m=2;m<=1000;m++)
{
s = 0; // 每一个数开始,都得将s置0,防止上个数的结果带入
for (i=1;i
if(m%i==0)
s=s+i;
}
if(s==m)
printf("%d为一个完数,因子为",m);
for(i=1;i
if(m%i==0)
printf("%d",i);
}
printf("\n");
}
}
#include
void main()
{
int m,i,s;
for(m=2;m<=1000;m++)
{
s=0;
for(i=1;i
if(m%i==0)
s+=i;
}
if(s==m)
printf("%d 是完数 \n",s);
}
}
你要把S放到大循环里面,同时 去掉i=m 的情况
for循环 这么写 把=情况去除
for(i=1;i