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)

#include<stdio.h>
main(){
	int a,b,c=0,d,e=0,i,j;
	while(1){
	scanf("%d %d",&a,&b);
	/*最大公約数*/
	if(a>=b){
		d=a;
	}
	else if(a<b){
		d=b;
	}
	for(i=2;i<d;i++){
		if(a%i==0&&b%i==0){
			c=i;
			break;
		}
	}
	printf("%d ",c);
	/*最少公倍数*/
	for(i=1;;i++){
		for(j=1;;j++){
			if(i*a==j*b){
				e=i*a;
			}else if(i*a<j*b){
				break;
			}
		}
	if(e!=0)
		break;
	}
	printf("%d",e);
	}
	return 0;
}