C语言求完数出错(循环嵌套)求解

#include<stdio.h>
main()
{
int a,b,c,d;
for(a=1;a<=1000;a++)
{
d=0;
for(b=1;b<=a;b++)
{
c=a%b;
if(c)
continue;
else
d=d+b;}
if(d==a)
printf("%d\t",d);}

}

得出来的结果只有
1
why??><

第1个回答  2013-12-18
你这个程序是要干嘛的?应该是逻辑上的问题。

#include<stdio.h>

main()
{
int a,b,c,d;
for(a=1;a<=1000;a++)
{
d=0;
for(b=1;b<=a;b++)
{
c=a%b;
if(c)
continue;
else
d=d+b;
if(d==a)
printf("%d\t",d);
}
}
}
这样就有 1, 6, 24, 28, 496 这几个值了
第2个回答  2013-12-18
完数是不包括本身的,只需修改
for(b=1;b<a;b++)
结果6,28,496本回答被提问者采纳
相似回答