#include<stdio.h>
int gcd(int a, int b){
    if(b == 0){
        return a;
    }
    else
    return gcd(b, a%b);
}
void computeGCDLCM(int a, int b, int *g,int *l){
    *g = gcd(x,y);
    *l = (x * y) / (*g);
}
int main(){
    int x, y;
    scanf("%d", &x);
    scanf("%d", &y);
    if(x <= 0 || y <= 0){
        printf("Invalid input");
        return 0;
    }
    int g, l;
    computeGCDLCM(x, y, &g, &l);
    printf("%d %d", g, l);
    return 0;
}













//int x = a, y = b;
//while(y != 0){
  //  int temp = y;
    //y = x%y;
    //x = temp;
//}
//*gcd = x;
//*lcm (a*b)/(*gcd);
//}
//int main(){
//    int x, y;
 //   scanf("%d %d", &x,&y);
  //  if(x<=0 || y<=0){
//        printf("Invalid input");
 //       return 0;
  //  }
//    int gcd,lcm;
 //   computeGCDLCM(x,y,&gcd,&lcm);
   // printf("%d %d",gcd,lcm);
//    return 0;
//}