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: Wrong Answer)

import java.util.Scanner;

class Main
{
	public static void main (String[] args) throws java.lang.Exception
	{
		int [] a = new int [50], b = new int [50];
		int c = 0, j = 0;
		
		Scanner cin = new Scanner (System.in);
		while (cin.hasNext()) {
			a[c] = cin.nextInt();
			b[c] = cin.nextInt();
			c++;
		}
		
		for (j = 0; j < c; j++) {
			gcdlcm(a[j], b[j]);
		}
	}
	
	private static void gcdlcm (int x, int y) {
		int z = 0, ans = 1;
		if (x >= y) z = x;
		if (y > x) z = y;
		for (int i = 2; i < z; i++) {
			if (x % i == 0 && y % i == 0) {
				x /= i; y /= i;
				ans *= i;
			}
		}

		System.out.print(ans + " ");
		System.out.println(ans *= x * y);
		
	}
}