分别编写求两个整数的最大公约数的函数hcf和求最小公倍数的函数lcd。主函数已给出,其从键盘接收两个整数,调用这两个函数后输出结果。
(提示:求最大公约数可用辗转相除法。即将大数作为被除数,小数作为除数,若二者余数不为0,则将小数作为被除数,余数作为除数,…直到余数为0。求最小公倍数则用两数的积除以最大公约数即可。)
#coding=utf-8
#https://www.nowcoder.com/questionTerminal/175399ed945340c0a57f484710dc30a1?mutiTagIds=573&orderByHotValue=1&questionTypes=000010
'''
分别编写求两个整数的最大公约数的函数hcf和求最小公倍数的函数lcd。
主函数已给出,其从键盘接收两个整数,调用这两个函数后输出结果。
(提示:求最大公约数可用辗转相除法。即将大数作为被除数,小数作为除数,
若二者余数不为0,则将小数作为被除数,余数作为除数,…直到余数为0。
求最小公倍数则用两数的积除以最大公约数即可。)
'''
class Solution():
def hcf(self, a, b):
# 辗转相除法
if a < b:
a, b = b, a
while b != 0:
a, b = b, a%b
return a
def lcd(self, a, b):
# 用两数的积除以最大公约数
return a * b / self.hcf(a, b)
if __name__ == "__main__":
while True:
try:
s = Solution()
nums = raw_input().split()
a,b = map(int, nums)
print s.hcf(a, b), s.lcd(a, b)
except:
break