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: Accepted)

#include<stdio.h>

long int gcd(long int x,long int y)
{
	if(y==0)return x;
	else {return gcd(y,x%y);}
}

long int lcm(long int x,long int y)
{
	int i,j;
	for(i=1;;i++)
	{
		for(j=1;y*j<=x*i;j++)
		{
			if(x*i==y*j)return x*i;
		}
	}
}

int main()
{
	long int x,y;
	while(scanf("%ld %ld",&x,&y)!=EOF)
        {
	  printf("%ld %ld\n",gcd(x,y),lcm(x,y));
        }
	return 0;
}