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>
	

int main(void){
	
	int x,y;
	int i,j;
	int greatest,least;
		
	while( scanf("%d %d",&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("%d %d\n",greatest ,least);
	}

	return 0;
}