Problem D: 【2012基础】公约数公倍数

Memory Limit:64 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:140 Solved:28

Description

T是个多才多艺的同学,不仅擅长国画,还是个数学爱好者,他小学六年级就代表龙城书院参加了“华罗庚金杯”少年数学邀请赛。最近小T对最大公约数和最小公倍数产生了浓厚的兴趣,并学会了用辗转相除法求两个自然数的最大公约数,但小T并不满足于会用辗转相除法,他是一个酷爱钻研的人,无论学什么都喜欢刨根问底,他想能不能把这个问题反过来,即已知两个自然数AB的最大公约数G和最小公倍数L,问有多少对满足条件的自然数对AB

Input

仅有一行包含两个用空格隔开的自然数GL,数据保证L一定是G的倍数并且满足1GL1,000,000,000

Output

包含若干行,每行输出一对自然数AB(AB),它们满足GCD(A,B)=GLCM(A,B)=L。这里GCD(A,B)表示AB的最大公约数,LCM(A,B) 表示AB的最小公倍数。输出时要求按照A(每行第一个数)从小到大输出,两数之间严格用一个空格隔开,行末不能有空格。

Sample Input Copy

4 48

Sample Output Copy

4 48
12 16

HINT

【样例解释】
两个数的最大公约数要等于4、最小公倍数要等于48,这两个数只可能是448或者1216,因为412小,所以第一行输出448,第二行输出1216。有关辗转相除法的知识请参阅试机文件夹中的word文档“说明.doc”。
【友情提醒】
对于任意两个自然数AB都有,A*B=GCD(A,B)*LCM(A,B),即两个自然数之积等于它们的最大公约数与最小公倍数之积,这一点对你思考问题和检验结果都会有所帮助。
【数据范围】
30%的数据满足:1GL500
50%的数据满足:1GL10,000
100%的数据满足:1GL1,000,000,000

Source/Category