上次求完数,我按你所修改的重新上机调试了一下,修改后的代码如下:
main()
{int m,i,a,b;
for (a=0,m=1;m<=1000;m++)
{for (i=1;i<=1000;i++)
{b=m;if (m%i==0)
{a=a+i;m=m/i;}
else break;}
if (b==a) printf ("%d",a);
}
}
可是运行后计算机不停的输出1,又是死循环,是不是(b==a)有问题啊?我觉得左边的a是真,
右边的b也是真,所以a=b恒成立
若不是,该如何改,有劳