亲和数,又称相亲数、友爱数、友好数,指两个不同的正整数中,彼此的全部约数之和(本身除外)与另一方相等。比如,假如A B是亲和数,那么A的所有因子之和(本身除外)等于B,B的所有因子之和(本身除外)等于A。毕达哥拉斯曾说:“朋友是你灵魂的倩影,要像 220220 与 284284 一样亲密。”
人和人之间讲友情,有趣的是,数与数之间也有相类似的关系,数学家把一对存在特殊关系的数称为“亲和数”。常言道,知音难觅,寻找亲和数更使数学家绞尽了脑汁。亲和数是数论王国中的一朵小花,它有漫长的发现历史和美丽动人的传说。
计算鸭对亲和数产生了兴趣,他想知道给出某个正整数 nn,求出一对亲和数 AA 和 BB 满足 A\ge nA≥n,并且 AA 是最小的。
输入
一行一个正整数 n\ (6\le n \le 18000)n (6≤n≤18000)。
输出
一行两个整数 AA 和 BB。
样例
输入 211
输出 220 284
代码(c++)
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin>> n;
for(int a = n; ; a++)
{
int b = 0;
for(int i = 1; i * i <= a; i++)
{
if(a % i == 0)
{
b += i;
if(i != 1 && a / i != i)
{
b += a / i;
}
}
}
int sum = 0;
for(int i = 1; i * i <= b; i++)
{
if(b % i == 0)
{
sum += i;
if(i != 1 && b / i != i)
{
sum += b / i;
}
}
}
if(sum == a && a != b)
{
cout<< a << " " << b;
return 0;
}
}
return 0;
}