求亲密数

 

/*
两个不同的自然数A和B,
如果整数A的全部因子(包括1,不包括A本身)之和等于B;
且整数B的全部因子(包括1,不包括B本身)之和等于A,
则将整数A和B称为亲密数。求3000以内的全部亲密数。

*/
#include <stdio.h>
int count(int a){
    int i,sum=0;
    for(i=1;i<=a/2;i++){
        if(a%i==0){
            sum+=i;
        }
    }
    return sum;
}
int main()
{
    int a,b;
    for(a=2;a<=3000;a++){
        b=count(a);
        if(count(b)==a&&a!=b){
            printf("i=%d,j=%d\n",a,b);
        }
    }
    /*int i,j,suma=0,sumb=0;
    for(i=1;i<=3000;i++){
        for(j=1;j<=3000;j++){
            suma=count(i);
            sumb=count(j);
            if(suma==j&&sumb==i&&i!=j){
                printf("i=%d,j=%d\n",i,j);
            }
        }

    }*/
    return 0;
}

 

posted @ 2019-11-08 14:33  dreamy_java  阅读(275)  评论(0编辑  收藏  举报