#include <iostream>
using namespace std;
int getGCD(int a, int b) {
if (a % b == 0) return b;
if (b % a == 0) return a;
int gcd = 1; int k = 2;
while (a > k && b > k) {
if (a % k == 0 && b % k == 0)
gcd = k;
k++;
}
return gcd;
}
int getLCD(int a, int b,int gcd) {
return a * b / gcd;
}
int main() {
int a, b;
cin >> a >> b;
cout << getGCD(a,b) << endl;
cout<<getLCD(a, b, getGCD(a, b)) << endl;
}
24 12처럼 작은 수가 최소공약수가 되는 경우를 고려하지 못함