#include <iostream>
using namespace std;
#define ll long long
int gcd(int a,int b){
if(b==0){
return a;
}
return gcd(b,a%b);
}
int main(){
ll a,b;
cin>>a>>b;
cout<<gcd(a,b)<<" ";
cout<<(a*b)/gcd(a,b);
}
// #include <iostream>
// using namespace std;
// #define ll long long
// int main() {
// ll a,b;
// cin>>a>>b;
// ll A=a;
// ll B=b;
// while(b){// 最大公因数(a,b)==最大公因数(b,a%b); 直到(a,0)两个数时 最大公因数就是a
// int temp=b;
// b=a%b;
// a=temp;
// }
// cout<<a<<" ";
// //两个数的乘积==最大公因数*最小公倍数
// cout<<(A*B)/a;
// }
// // 64 位输出请用 printf("%lld")