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;

class MyClass
{
    public static UInt64 Euclid(UInt64 a, UInt64 b)
    {
        UInt64 c = 0;
        do
        {
            c = a % b;
            a = b;
            b = c;
        } while (c != 0);
        return a;
    }

    static void Main(string[] args)
    {
        UInt64 a, b;
        string[] str;
        string str2;
        while ((str2 = Console.ReadLine()) != null)
        {
            str = str2.Split(' ');
            a = UInt64.Parse(str[0]);
            b = UInt64.Parse(str[1]);
            UInt64 gcd = Euclid(a, b);
            UInt64 lcm = (a * b) / gcd;
            Console.WriteLine("{0} {1}", gcd, lcm);
        }
    }
}