读书人

亲密数有关问题

发布时间: 2013-01-22 10:23:54 作者: rapoo

亲密数问题。
#include <stdio.h>
int fsum(int a)
{ int i,sum=1;
for (i=2; i<=a/2; i++)
if(a%i==0) sum+=i;
return sum;
}
int main()
{
int fsum(int a);
int a,b,c;
for (a=1;a<=3000;a++)
{b=fsum(a);
c=fsum(b);
if ( a==c && b!=a)
printf("(%d,%d)",a,b);
}
}


如何让它 相同亲密数显示一对就够了。
[解决办法]
#include <stdio.h>
int fsum(int a)
{ int i,sum=1;
for (i=2; i<=a/2; i++)
if(a%i==0) sum+=i;
return sum;
}
int main()
{
int fsum(int a);
int a,b,c;
for (a=1;a<=3000;a++)
{b=fsum(a);
c=fsum(b);
//if ( a==c && b!=a)
if ( a==c && b>a)//反正a b不相等,就按照大小顺序输出来呗
printf("(%d,%d)",a,b);
}
}

读书人网 >C++

热点推荐