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

// tested on node version 0.10.36
var fs = require("fs");
function gcd(a, b) {
    // make sure a > b
    var t = a;
    if(b > a) {
        a = b;
        b = t;
    }
    while(b != 0) {
        t = b;
        b = a % b;
        a = t;
    }
    return a;
}

var input = fs.readFileSync('/dev/stdin').toString();
var lines = input.split("\n");
for(var i = 0; i < lines.length; i++) {
    var parts = lines[i].split(" ");
    var a = parseInt(parts.shift());
    var b = parseInt(parts.shift());
    if(!isNaN(a + b)) {
        var g = gcd(a, b);
        var lcm = (a * b) / g;
        console.log(g, lcm);
    }
}