//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;
}
