#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")