【问题描述】求数n之内的亲密对数。所谓“亲密对数”,即A的所有因子(包含1但不包含其本身)之和等于B,而B的所有因子之和等于A。
【输入形式】
某个数字n。
【输出形式】
此数字n之内的亲密对数。
【样例输入】
400
【样例输出】
220 284
代码:
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=2;i<=400;i++) //不包括数字本身,故去除1
{
int asum=1,bsum=1; //所有数字的因子都含有1
for(int j=2;j<=(i/2);j++) //求A除本书外的因子和asum
{
if(i%j==0)
asum+=j;
}
for(int m=2;m<=(asum/2);m++) //求asum除去本身外的因子和bsum
{
if(asum%m==0)
bsum+=m;
}
if(bsum==i&&i<asum) //判断i与bsum是否相等,并去除重复值
cout<<bsum<<" "<<asum<<endl;
}
return 0;
}