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)

#!/usr/bin/env ruby
# encoding: utf-8

def gcd ( a, b )
	n, i = 0, 1
	tmp = []
	if a > b
		tmp << a << b << 0
	else
		tmp << b << a << 0
	end
	while true
		while true
			tmp[( n + 2 ) % 3 ] = tmp[ n % 3 ] - tmp[( n + 1 ) % 3 ] * i
			if tmp[( n + 2 ) % 3 ] == 0
				return tmp[( n + 1 ) % 3 ]
			else
				if tmp[( n + 2 ) % 3 ] < tmp [( n + 1 ) % 3 ]
					break
				end
			end
			i += 1
		end
		n += 1
	end
end

while line = gets do
	c, d = line.split.map(&:to_i)
	g = gcd c, d
	l = ( c / g ) * d
	puts "#{g} #{l}"
end