/* 两个不同的自然数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 ",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 ",i,j); } } }*/ return 0; }