一道c语言程序题 就是完数的,怎么不出结果求高手

2024-12-28 20:04:32
推荐回答(3个)
回答1:

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

回答2:

#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 的情况

回答3:

for循环 这么写 把=情况去除
for(i=1;iif(m%i==0)这么判断是对的