#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <cmath>
using namespace std;

int gcd(int a, int b)
{
	int r = a % b;
	if (r == 0) {
		return b;
	}
	return gcd(b, r);
}
int lcm(int a, int b)
{
	if(a == 0 || b == 0) {
		return 0;
	}
	//return (a * b) / gcd(a, b);
	return ((a / gcd(a, b)) * b);
}
int main()
{
	int n, m;
	vector<int> t;
	
	// 前処理をするとさらに早くすることが出来る
	while (cin >> n >> m) {// while(cin >>n, n)なら1行で住む
		if (n == 0 && m == 0) {
			break;
		}
		// 出力
		cout << gcd(n, m) << " " << lcm(n, m) << endl;
	}

	return 0;
}