#include <iostream>
using namespace std;

unsigned euclidean_gcd(unsigned a, unsigned b) {
  if (a < b) return euclidean_gcd(b, a);
  unsigned r;
  while ((r = a % b)) {
    a = b;
    b = r;
  }
  return b;
}

int main() {
  unsigned a, b;
  while (cin >> a >> b) {
    unsigned gcd = euclidean_gcd(a, b);
    unsigned lcm = a / gcd * b;
    cout << gcd << " " << lcm << endl;
  }
  return 0;
}
