#include<cstdio>
#include<cstring>
int zdgys(int a,int b)//辗转相除法
{
int t;
while(b)
{
t=b;
b=a%b;
a=t;
}
return t;
}
int zxgbs(int a,int b)//两个数的最小公倍数== 两个数相乘/两个数的最大公约数
{
return a/zdgys(a,b)*b;
}
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d %d",zdgys(a,b),zxgbs(a,b));
return 0;
}