#include <iostream>
#include <algorithm>

int getGCD(int a, int b)
{
  /* a??¨b????????§??¬?´???°???????????? */
  if (a < b) {
    std::swap(a, b);
  }
  
  int ret = 0;
  for (int i = 1; i <= a; i++) {
    if (a % i == 0 && b % i == 0) {
      ret = i;
    }
  }
  
  return ret;
}

int getLCM(int a, int b)
{
  /* a??¨b???????°???¬?????°???????????? */
  if (a < b) {
    std::swap(a, b);
  }
  
  int ret = 0;
  for (int i = a; ; i++) {
    if (i % a == 0 && i % b == 0) {
      ret = i;
      break;
    }
  }
  
  return ret;
}

int main(void)
{
  int a, b;
  while (std::cin >> a >> b) {
    std::cout << getGCD(a, b) << " " << getLCM(a, b) << std::endl;
  }
  
  return 0;
}