C语言 3000内的亲密数问题0
#include void main () { int a,b,c,d,f; for(a=1;a<=3000;a++) { b=1; c=0; while(b
void main ()
{
int a,b,c,d,f;
for(a=1;a<=3000;a++)
{
b=1;
c=0;
while(b
{
if(a%b==0)
c+=b;
b++;
}
f=1;
d=0;
while(f<=c/2)
{
if(c%f==0)
d+=f;
f++;
}
if(a==d)
printf("亲密数为%d,%d\n",a,c);
}
====================================================================
我为什么我这样写 得不到结果呢?
====================================================================
#include
void main ()
{
int a,b,c,d,e,f;
for(a=1;a<3000;a++)
{
for(b=1,c=0;b<=a/2;b++)
if(a%b==0)
c+=b;
for(d=1,f=0;d<=c/2;d++)
if(c%d==0)
f+=d;
if(a==f&&a
printf("亲密数为%d,%d\n",a,c);
}
}
==================================================================
为什么除数要小于被除数的一半呢?就是b