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;
using System.Text;
 
namespace ConsoleApplication32
{
    class Program
    {
		static long gcd(long a,long b){
			if(b==0)
				return a;
			return gcd(b,a%b);
		}
        static void Main(string[] args){
			while(true){
				string s;
			s=	Console.ReadLine();
			if(s==null)break;
			long[] ab=s.Split().Select(long.Parse).ToArray();
		    if(ab[0]<ab[1]){long c=ab[0];ab[0]=ab[1];ab[1]=c;}
	        long a=gcd(ab[0],ab[1]);
	        Console.WriteLine(a+" "+ab[0]*ab[1]/a);
				}
		}
	}
}