//最大公约数:两个整数的最大公约数=较小的那个数和两数相除余数的最大公约数(用递归 )
//最小公倍数=两数的乘积/最大公约(因)数
#include <stdio.h>
int yueshu(int n,int m)
{
if(n%m==0)
{
return m;
}
else
{
return yueshu(m,n%m);//n%m得的值一定小于m,因为余数一定小数除数
}
}
int beishu(int n,int m)
{
int b=n*m/yueshu(m,n%m);
return b;
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
printf("%d %d",yueshu(n,m),beishu(n,m));
return 0;
}