求500以内的所有亲密数对

若正整数A的所有因子(包括1但不包括自身,下同)之和为B,而B的因子之和为A,则称AB为一对亲密数。例如,6的因子之和为1+2+3=6,因此66为一对亲密数(6自身构成一对亲密数);又如,220的因子之和为l+2+4+5+10+11+20+22+44+55+110=284,而284的因子之和为1+2+4+71+142220,因此,220284为一对亲密数。
#include<stdio.h>
#include
<conio.h>
int facsum(int m)
{
 
int sum=1,f;
 
for(f=2;f<=m/2;f++)
  
if(m%f==0)sum=sum+f;
 
return sum;
}

void main()
{
 
int m=3,n,k,l;
 printf(
"The chummy numbers is:\n");
 
for(m=3;m<=500;m++)
 
{
   n
=facsum(m);
   k
=facsum(n);
   
if(m==k)
    
if(m<=n)
     printf(
"%d and %d\n",m,n);
 }

 getch();
}

posted @ 2007-01-21 08:44  齐心  Views(7899)  Comments(4Edit  收藏  举报