#include <iostream>
using namespace std;
/*
递归法求最大公约数
int gcd(int m,int n)
{
if(n==0)
return m;
else
return gcd(n,m%n);
}
*/
int gcd(int x,int y)
{
while(x!=y)
{
if(x>y)
x-=y;
else
y-=x;
}
return x;
}
int main()
{
int a,b;
cin>>a>>b;
cout<<gcd(a,b)<<endl;
cout<<a/gcd(a,b)*b<<endl; //最小公倍数为: a*b/最大公约数
return 0;
}