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)

// 標準入力
var fs = require('fs'),
length = fs.fstatSync(process.stdin.fd).size,
buffer = new Buffer(length),
bytesRead = fs.readSync(process.stdin.fd, buffer, 0, length, 0),
input = buffer.toString('utf8', 0, bytesRead).trim().split('\n');
main();
     
// ここから
function main(){
  for(var i = 0, len = input.length; i < len; i++){
    var j = input[i].split(" ");
    var a = j[0] - 0;
    var b = j[1] - 0;
    var g = gcd(a, b);
    var lcm = a * b / g;
    console.log(g + " " + lcm);
  }
}

function gcd(a, b){
  var x = max(a, b);
  var y = min(a, b);
  var mod
  while(mod = x % y){
    x = y;
    y = mod;
  }
  return y;
}

function max(a, b) {
  var t = a - b;
  return a - (t & (t >> 31));
}

function min(a, b){
  var t = a - b;
  return b + (t & (t >> 31));
}