【问题描述】
求整数n以内(含n)的全部亲密数。
说明:如果正整数A的全部因子(包括1,不包括A本身)之和等于B;且正整数B的全部因子(包括1,不包括B本身)之和等于A,则将正整数A和B称为亲密数。
1不和其他数形成亲密数。
【输入形式】
输入整数n
【输出形式】
每一行输出一对亲密数,中间用一个空格隔开。
每一对亲密数只输出一次,小的在前。
各对亲密数按序排序,按亲密数中小的那个数从小到大排序。
【样例输入】
3000
【样例输出】
220 284
1184 1210
2620 2924
a = int(input());
b = [0 for i in range(a+1)]
ret = {}
for i in range(1,a+1):
sum = 0
for c in range(1,i):
if(i%c == 0):
sum += c
if sum <= a and b[sum] == i:
print("{} {}".format(min(sum,i),max(sum,i)))
b[i] = sum