import java.io.BufferedReader;
import java.io.InputStreamReader;
class Main{
    public static void main(String args[]){
	String str;
	try{
	    InputStreamReader is = new InputStreamReader(System.in);
	    BufferedReader br = new BufferedReader(is);
	    int[] n = new int[2];
	    long[] l = new long[2];
	    int temp;
	    while(null != (str = br.readLine())){
		String[] strary = str.split(" ");
		n[0] = Integer.parseInt(strary[0]);
		n[1] = Integer.parseInt(strary[1]);
		l[0] = n[0];
		l[1] = n[1];
		while(n[0] != n[1]){
		    if(n[0] > n[1]){
			n[0] = n[0]-n[1];
		    }
		    else{
			n[1] = n[1]-n[0];
		    }
		}
		System.out.println(n[0]+" "+((l[0]*l[1])/n[0]));
	    }
	}
	catch(Exception e){
	    System.exit(0);
	}
    }
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz