#include <stdio.h>
using namespace std;

long long  a[51];
long long b[51];
long long A[51];
long long B[51];
long long fun(long long _a,long long _b)
{
   long long c;
   while(_b!=0)  /* 余数不?0，??相除，直到余数?0 */
   {
       c=_a%_b;
       _a=_b;
       _b=c;
    }
   return _a;
}
int main()
{
    int i=1;
    while(~scanf("%lld%lld",&a[i],&b[i]))
    {
       A[i]=fun(a[i],b[i]);//最大
       B[i]=a[i]*b[i]/fun(a[i],b[i]);
       i++;
    }
    for(int j=1;j<i;j++)
    {
       printf("%d ",A[j]);
       printf("%d\n",B[j]);
    }
    return 0;
}