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(void)
{
	int a, b;
	int GCD, LCM;
	int j = 0;
	int i;
	int tmp;
	int r;
	
	while (scanf("%d %d", &a, &b) != EOF){
		
		for (GCD = 1; j == 0; GCD++){
			if (GCD % a == 0 && GCD % b == 0){
				j++;
			}
		}
		
		j = 0;
		
		  /* ?????¶??° a > b ????¢?????????\??? */
  if(a<b){
    tmp = a;
    a = b;
    b = tmp;
  }
 
  /* ?????????????????????????????? */
  r = a % b;
  while(r!=0){
    a = b;
    b = r;
    r = a % b;
  }

		j = 0;
		
		printf("%d %d\n", b, GCD - 1);
		
	}
	
	return (0);
}