题目描述
键盘输入N,N在2至2000之间,求2至N中的亲密数对,就是A的因子和等于B,B的因子和等于A,且A≠B。 如48和75是亲密数对。48的因子和为2+3+4+6+8+12+16+24=75,而75的因子和为3+5+15+25=48。
输入格式
只有一行,为一个整数N( 2<=N<=2000 )
输出格式
输出若干行,每行两个整数(用一个空格隔开)
using namespace std;
int jjy(int n)
{
int sum=0;
for(int i=2;i*i<=n;i++)
{
if(n%i==0) sum+=i+(n/i);
if(i*i==n) sum-=i;
}
return sum;
}
int main()
{
int n;
scanf("%d",&n);
for(int i=2;i<=n;i++)
{
int bz1,bz2;
bz1=jjy(i);
bz2=jjy(bz1);
if(bz2==i&&bz1!=i) printf("%d %d\n",i,bz1);
}
return 0;
}```