import java.util.Scanner;

public class Main {
	/**
	 * ???????????\????????£?????´??° a, b ?????\???????????¨??????a ??¨ b ????????§??¬?´???°??¨????°???¬?????°???????????????????????????????????°????????????????????????????????? ????????????a ??¨
	 * b ???????°???¬?????°??? 20 ???????¶??????????????????¨????????????
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		@SuppressWarnings("resource")
		Scanner sc = new Scanner(System.in);
		
		while (sc.hasNext()) {
			long a = sc.nextLong();
			long b = sc.nextLong();
			System.out.print(greatestcommondivisor(a, b) + " " );
			System.out.println(leastcommonmultiple(a, b));
		}

	}

	public static long greatestcommondivisor(long a, long b) {
		if(a > b) {
            long tmp;
            tmp = a;
            a = b;
            b = tmp;
        }

        while(a != 0) {
            long tmp = a;
            a = b%a;
            b = tmp;
        }

        return b;
	}

	public static long leastcommonmultiple(long a, long b) {
		// ?????° A , B ????????§??¬?´???°??? G ????°???¬?????°??? L ??¨????????¨
		// AB=GL???????????????????????????????????§???????????????
		long c = greatestcommondivisor(a, b);
		long d = a * b / c;
		return d;

	}

}
/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