2.题目:求3000以内的全部亲密数
说明:如果正整数A的全部因子(包括1,不包括A本身)之和等于B;且正整数B的全部因子(包括1,不包括B本身)之和等于A,则将正整数A和B称为亲密数。1不和其他数形成亲密数。
输出样例: 220 和 284 是一对亲密数。 1184 和 1210 是一对亲密数。
#include <iostream>
using namespace std;
int yinziSum(int a) /*求a的因子和*/
{
/**********Program**********/
int Sum=0;
for(int i=1;i<=a/2;i++)
{
if(a%i==0){
Sum+=i;
}
}
return Sum;
/**********Program**********/
}
int main()
{
int a,b;
for(a=1;a<3000;a++)
{
b=yinziSum(a);
if (a==yinziSum(b)&&a<b)
cout<<a<<" 和 "<<b<<" 是一对亲密数。"<<endl;
}
return 0;
}