Problem:
GCD and LCM

Write a program which computes the greatest common divisor (GCD) and the least common multiple (LCM) of given a and b.

Input

Input consists of several data sets. Each data set contains a and b separated by a single space in a line. The input terminates with EOF.

Constraints

0 < a, b ≤ 2,000,000,000

LCM(a, b) ≤ 2,000,000,000

The number of data sets ≤ 50

Output

For each data set, print GCD and LCM separated by a single space in a line.

Sample Input

8 6
50000000 30000000

Output for the Sample Input

2 24
10000000 150000000

Solution in JAVA (judge verdict: Accepted)

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));
	}
}