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 max(int,int);
int min(int,int);
int main(){
  int n,m;
  while(scanf("%d %d",&n,&m)!=EOF){
    printf("%d %d\n",max(n,m),min(n,m));
  }
   return 0;
}
int max(int n,int m){
  int tmp,i,j,num=0;
  if(n>m){
    tmp=n;
    n=m;
    m=tmp;
  }
  for(i=2;i<n;i++){
    if(n%i==0&&m%i==0){
      num=i;
    }
  }
  return num;
}
int min(int n,int m){
  int i,j=1,num=0,tmp;
  for(i=1;;i++){
    for(j;;j++){
      if(i*m==j*n){
	num=i*m;
      }
      if(m*i<n*j){
	break;
      }
    }
    if(num!=0){
      break;
    }
  }
  return num;
}