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

/*
	2つの数の最大公約数と最小公倍数を求める。
*/

#include<stdio.h>
#include<limits.h>

int main(void){

	long int x,y;
	long int i,j;
	long int greatest,least;

	while( scanf("%ld %ld",&x ,&y) != EOF ){
		//最小公倍数を求める。
		for(i=1; i<=y; i++){
			for(j=1; (j<=x)||(x*i>y*j); j++){
				if( (x*i) == (y*j) ){
					least = x*i;
					i=y;
					j=x;
				}
			}
		}
		
		//最大公約数を求める
		greatest = (x*y)/least;
		printf("%ld %ld\n",greatest ,least);
	}

	return 0;
}