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>
void GCD(int a,int b);
void LCM(double a,double b);
int main(void)
{
	double a,b;
	while(scanf("%lf%lf",&a,&b)!=EOF){
		if(a>b){
		int temp=a;
		a=b;
		b=temp;
	}
	GCD(a,b);
	LCM(a,b);
	}
	return 0;
}
void GCD(int a,int b){
	long long divisor=1;
	for(int i=2;i<=a;i++){
		if(a%i==0){
			if(b%i==0){
				divisor=i;
			}
		}	
	}
	printf("%d ",divisor);
}
void LCM(double  a,double b){
	double multiple=0;
	for(int i=1;i<=a;i++){
		for(int  j=1;j<=b;j++){
			if(a*j==b*i){
				multiple=a*j;	
				break;
			}
		}
		if(multiple!=0){
			break;
		}
	}
	printf("%.0lf\n",multiple);
}