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 C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Linq;

namespace _005_GCDandLCM
{
	class Program
	{
		static void Main ( string[] args )
		{
			string inputStr;

			while ((inputStr = Console.ReadLine ()) != null)
			{
				int[] numArray = inputStr.Split (' ').Select (str => int.Parse (str)).ToArray ();

				int dividend = numArray.Max ();
				int divisor = numArray.Min ();

				while (dividend % divisor != 0)
				{
					int rest;
					Math.DivRem (dividend, divisor, out rest);

					dividend = divisor;
					divisor = rest;
				}

				long lcm = (long) numArray[0] * numArray[1] / divisor;

				Console.WriteLine (divisor + " " + lcm);
			}
		}
	}
}