'''
输入两个数m, n
求两个数的最小公倍数和最大公约数
思路:
设两个整数u和v,用辗转相除法求最大公约数的算法如下: 例如: u=4和v=6
if v>u if v>u即:4<6
将变量u与v的值互换(使大者u为被除数) 变成 u=6,v=4
while(u/v的余数r!=0) u/v=6/4=1,余数r为2
{ {
u=v(使除数变为被除数u) u=v=4
v=r(使余数变为除数v) v=r=2
} }
输出最大公约数 u/v=4/2=2,余数为0,则最大公约数为r
最小公倍数为:u*v/最大公约数r
'''
# 求最大公约数
def solution(m, n):
if n > m:
t = m
m = n
n = t
c = m % n
while c != 0:
m = n
n = c
c = m % n
return n
if __name__ == '__main__':
m, n = map(int, input().split())
max_gy = solution(m, n)
min_gb = (m * n)//max_gy
print(max_gy, min_gb)