import java.util.*;
import java.io.*;
import java.math.BigInteger;
public class Main {
	public static void main(String... args) {
		Main m = new Main();
		m.solve();
		m.close();
	}

	Scanner sc;
	PrintWriter pw;
	public Main() {
		sc = new Scanner(System.in);
		pw = new PrintWriter(System.out);
	}
	private void close() {
		pw.flush();
		pw.close();
	}
	private void solve() {
		while(sc.hasNextLong()) {
			BigInteger a = BigInteger.valueOf(sc.nextLong());
			BigInteger b = BigInteger.valueOf(sc.nextLong());
			pw.printf("%d %d\n",gcd(a,b),lcm(a,b));
		}
	}
	// 最大公約数
	public BigInteger gcd(BigInteger l, BigInteger r){
		return l.gcd(r);
	}
	// 最小公倍数
	public BigInteger lcm(BigInteger l, BigInteger r){
		return l.multiply(r).divide(l.gcd(r));
	}
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz