#P06006. 亲和数

亲和数

题目背景

亲和数,又称相亲数、友爱数、友好数,指两个不相等的正整数,彼此的全部约数之和(本身除外)与另一方相等。毕达哥拉斯曾说:“朋友是你灵魂的倩影,要像 220220284284 一样亲密。”

220220 的所有约数和 1+2+4+5+10+11+20+22+44+55+110=2841+2+4+5+10+11+20+22+44+55+110=284

284284 的所有约数和 1+2+4+71+142=2201+2+4+71+142 = 220,可见 220220284284 是一对亲和数。

题目描述

找出 2n2~n 范围内所有不重复的亲和数对(亲和数对的两个整数均不大于 nn)。

输入格式

一个正整数 nn

输出格式

若干行,每行是一对亲和数。

对于一对亲和数,输出时小的在前,大的在后;

所有亲和数对,按照从小到大的顺序输出。

输入输出样例

1200
220 284
10000
220 284
1184 1210
2620 2924
5020 5564
6232 6368

说明/提示

👀️ 对于100%100\%的数据,2n1000002 \leq n \leq 100000,测试数据保证有符合条件的亲和数。

🚀️ 如果最后几个测试点超时,需要进一步思考如何降低程序时间复杂度(减少循环层级、减少循环次数等方法)。