/*gcd_lcm.cpp*/
#include<bits/stdc++.h>
#define int long long
using namespace std;
int gcd(int a, int b){
if(b == 0) return a;
else return gcd(b, a%b);
}
int lcm(int a,int b){
return a*b/gcd(a, b);//最小公倍数等于两数之积除以最大公约数
}
signed main(){
int q,num1,num2;
cin>>q;
while(q--){
cin>>num1>>num2;
cout<<gcd(num1, num2)<<endl;
cout<<lcm(num1, num2)<<endl;
}
return 0;
}