#include<iostream>
using namespace std;
int main()
{
int lcm(int a,int b);
int gcd(int a,int b);
int i,len;
int n=2;
cin>>len;
int**p=new int*[len];
for(i=0;i<len;i++)
{
p[i]=new int[n];
}
for(i=0;i<len;i++)
for(int j=0;j<n;j++)
{
cin>>p[i][j];
}
for(i=0;i<len;i++)
cout<<gcd(p[i][0],p[i][1])<<" "<<lcm(p[i][0],p[i][1])<<endl;
return 0;
}
int gcd(int a,int b)
{
int c,k;
if(a>b)
{
while((a%b)!=0)
{
k=(a%b);
a=b;
b=k;
}
c=b;
}
else
{
while((b%a)!=0)
{
k=(b%a);
b=a;
a=k;
}
c=a;
}
return c;
}
int lcm(int a,int b)
{
return((a*b)/gcd(a,b));
}