// 標準入力
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));
}