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>
int gcd(int ,int );
int lcm(int ,int );
int main()
{
//	freopen("in.txt","r",stdin);
    int n,m;
    int count=1;
    while(scanf("%d%d",&n,&m)!=EOF&&count<=50)
    {
    	int i,j,max,min;
    	int a,b;
    	if(n>m){
    		max=n;
    		min=m;
		}else{
			max=m;
    		min=n;
		}
		a=gcd(max,min);
		b=a*(max/a)*(min/a);
		printf("%d %d\n",a,b);
		count++;
	}
    return 0;
}
int gcd(int max,int min)
{
	int i,gcd;
	for(i=min;i>0;i--)
		if((max%i==0)&&(min%i==0)){
			gcd=i;
			break;
		}
	return gcd;
}