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 Ruby (judge verdict: Time Limit Exceeded)

divsor = []
d = []

while line = gets
  (a, b) = line.split.map(&:to_i)
  b < a ? big = a  : big = b
  if b < a
    big = a
    small = b
  else
    big = b
    small = a
  end

  tmp1 = big
  tmp2 = small

  while (tmp1 % small) != 0
    tmp1 += big
  end
  least_common_multiple = tmp1

  for i in 1..tmp2
    divsor.push(i) if tmp2 % i == 0
  end

  divsor.each do |i|
      d.push(i) if big % i == 0
  end

  printf("%d %d\n", d[-1], least_common_multiple)
end