Problem2052--因数和

2052: 因数和

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 137  Solved: 48
[Status] [Submit] [Creator:]

Description

本题中,我们定义一个整数的因数和为它的所有因数之和。比如:6 的因数和为 1 + 2 + 3 + 6 = 12 。

现在给你一个整数 n,你需要找出所有同时满足如下两个条件的整数对 a 和 b:

① 1 ≤ a < b ≤ n
② a 的因数和是 b 的倍数,同时 b 的因数和是 a 的倍数

Input

一个整数 n(3 ≤ n ≤ 10000)。

Output

输出若干行,每行包含两个整数 a 和 b,以一个空格分隔。要求按照 a 从小到大,a 相同时 b 从小到大的顺序输出所有数对方案。

Sample Input Copy

100

Sample Output Copy

2 3
4 7
8 15
12 14
15 24
16 31
21 32
24 30
24 60
42 96
48 62
56 60

HINT

【样例解释】
· 2 的因数和为 1+2=3,是 3 的倍数,3 的因数和为 1+3=4,是 2 的倍数。
· 4 的因数和为 1+2+4=7,是 7 的倍数,7 的因数和为 1+7=8,是 4 的倍数。
· 8 的因数和为 1+2+4+8=15,是 15 的倍数,15 的因数和为 1+3+5+15=24,是 8 的倍数。
· 12 的因数和为 1+2+3+4+6+12=28,是 14 的倍数,14 的因数和为 1+2+7+14=24,是 12 的倍数。
· 15 的因数和为 1+3+5+15=24,是 24 的倍数,24 的因数和为 1+2+3+4+6+8+12+24=60,是 15 的倍数。
· 16 的因数和为 1+2+4+8+16=31,是 31 的倍数,31 的因数和为 1+31=32,是 16 的倍数。
· 21 的因数和为 1+3+7+21=32,是 32 的倍数,32 的因数和为 1+2+4+8+16+32=63,是 21 的倍数。
· 24 的因数和为 1+2+3+4+6+8+12+24=60,是 30 的倍数,30 的因数和为 1+2+3+5+6+10+15+30=72,是 24 的倍数。
· 24 的因数和为 1+2+3+4+6+8+12+24=60,是 60 的倍数,60 的因数和为 1+2+3+4+5+6+10+12+15+20+30+60=168,是 24 的倍数。
· 42 的因数和为 1+2+3+6+7+14+21+42=96,是 96 的倍数,96 的因数和为 1+2+3+4+6+8+12+16+24+32+48+96=252,是 42 的倍数。
· 48 的因数和为 1+2+3+4+6+8+12+16+24+48=124,是 62 的倍数,62 的因数和为 1+2+31+62=96,是 48 的倍数。
· 56 的因数和为 1+2+4+7+8+14+28+56=120,是 60 的倍数,60 的因数和为 1+2+3+4+5+6+10+12+15+20+30+60=168,是 56 的倍数。


【数据规模与约定】
· 对于 40% 的数据,n ≤ 100
· 对于 80% 的数据,n ≤ 1000
· 对于 100% 的数据,3 ≤ n ≤ 10000

Source/Category