//Haha TTpro
//BCGCD
//http://www.spoj.com/PTIT/problems/BCGCD/
#include <iostream>
void doi ( long long int &a, long long int &b);
long long int GCD (long long int a,long long intb);
long long int BCNN(long long int a,long long int b, long long int c);
using namespace std;
int main()
{
long long int a,b,c,d;
while (true)
{
cin >>a>>b;
if ((a==0)&&(b==0)) break;
c=GCD(a,b);
d=BCNN(a,b,c);
cout<<c<<" "<<d<<endl<<endl;
}
return 0;
}
long long int GCD (long long int a,long long int b)
{
if (a<b)
{
doi(a,b);
}
long long int r;
while (true)
{
r=a%b;
if (r==0) return b;
a=b;
b=r;
}
}
void doi( long long int &a, long long int &b)
{
long long int c;
c=a;
a=b;
b=c;
}
long long int BCNN(long long int a,long long int b, long long int c)
{
long long int s;
s=a*b;
s=s/c;
return s;
}