用C语言编写的1~1000内的完数,看不懂,希望有人来看一下
#include<stdio.h>int main()
{
int a,c,d;
for(a=2;a<=1000;a++)
{
for(c=1,d=0;c<a;c++)
{
if(a%c==0)
d=d+c;
}
if(d==a)
{
printf("%d的因数(除去本身)有",a);
for(c=1,d=0;c<a;c++)
{
if(a%c==0)
{
printf("%d ",c);
}
}
printf("\n%d是完数\n",a);
}
}
}
请教各位大佬们,红色代码中的 a 和 c 的初始值为2 1,然后是if语句判断a%c==0;
这个地方我的问题是:a,c都在每次循环中递增1,这样判断不就是表示2%1==0,3%2==0,4%3==0.这就没有真的时候。
我知道我循环理解错了,请各位大佬讲解一下,小弟一直在努力学c语言,谢谢啦!!!!