import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		while(scan.hasNext()){
			long a = scan.nextLong();
			long b = scan.nextLong();
			
			long max = Math.max(a, b);
			long min = Math.min(a, b);
			
			long yakusu = 0;
			long cal = 0;
			
			for(;true;){
				cal = max % min;
				max = min;
				min = cal;
				
				if(min==0){ 
					yakusu = max;
					break;
				}
			}
			
			long baisu = 0;
			baisu = a * b / yakusu;
			
			System.out.println(yakusu+" "+baisu);
		}			
	}
}
/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