import java.util.Scanner;
class Main {

    public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNext()) {

            int A = scanner.nextInt();

            int B = scanner.nextInt();

            int max = getMAX(A, B);

            int min = getMIN(A, B, max);

            System.out.println(max + " " + min);



        }
    }

    private static int getMAX(int A, int B) {
        for (int i = A; A > 0; i--) {
            if (A % i == 0 && B % i == 0) {
                return i;
            }
        }
        return 1;
    }
    private static int getMIN(int A, int B, int max){
        return A/max*B;
    }
}

/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