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 main()
{
	unsigned long int A,B,a,b,x,w1,w2,kazu,yakusuu=0,baisuu=0;
	while(scanf("%d %d",&A,&B)!=EOF)
	{
		a=A;
		b=B;
		yakusuu=0;
		baisuu=0;
		if(A>B)
		{
			while(1)
			{
				kazu=a%b;
				if(kazu==0)
				{
					yakusuu=b;
					break;
				}
				a=b;
				b=kazu;
			}
		}
		else
		{
			while(1)
			{
				kazu=b%a;
				if(kazu==0)
				{
					yakusuu=a;
					break;
				}
				b=a;
				a=kazu;
			}
		}
		for(x=2; x<=2000000000; x++)
		{
			w1=x%A;
			w2=x%B;
			if(w1==0 && w2==0)
			{
				baisuu=x;
				break;
			}
		}
		printf("%d %d\n",yakusuu,baisuu);
	}
	return 0;
}