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;

namespace AtCoder_CSharp
{
    class AtCoder
    {
        static void Main(string[] args)
        {
            int A, B;
            string input;
            string[] input2;

            while ((input = Console.ReadLine()) != null)
            {
                input2 = input.Split(' ');

                A = int.Parse(input2[0]);
                B = int.Parse(input2[1]);

                int gcd = GCD(A, B);
                int lcm = A * (B / gcd);

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

        }
        
        //最大公約数
        static int GCD(int x,int y)
        {

            int big = Math.Max(x, y), small = Math.Min(x, y);

            if (small == 0)
            {
                return big;
            }

            //ユークリッドの互除法    余り0で終了
            while (big % small != 0)
            {
                int amari = big % small;
                big = small;
                small = amari;
            }

            return small;
        }

    }
}