/*快读+手写*/
#include <bits/stdc++.h>
using namespace std;
int q,a,b;
int gcd(int x,int y){
if(y==0)
return x;
return gcd(y,x%y);
}
int lcm(int a,int b){
return a*b/gcd(a,b);
}
inline void write(int x) {
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
inline int read() {
int x=0,f=1;
char c=getchar();
while(c<'0'||c>'9'){if(c=='-') f=-1;c=getchar();}
while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
return x*f;
}
signed main(){
q=read();
while(q--){
a=read(),b=read();
write(gcd(a,b)),putchar(' '),write(lcm(a,b)),putchar('\n');
}
return 0;
}