import java.util.Scanner;

/*
 * 输入两个数,求这两个数的最大公约数和最小公倍数
 * 算法思想:(非递归)最大公约数和最小公倍数
 * 最大公约数:for循环从二者最小的数到1遍历,能共同 被整除的最大整数即为最大公约数
 * 最小公倍数:最大公约数*两个数与最大公约数的商
 */
public class Main {
    
    static Scanner sc = new Scanner(System.in);
    static int a,b;
    public static void main(String[] args) {
        input();//输入a和b
        f();//计算输出
    }
    public static void input() {
        a = sc.nextInt();
        b = sc.nextInt();
    }
    public static void f() {
        int small = a<b?a:b;//a和b的最小数
        for(int i=small;i>=1;i--) {
            if(a%i==0 && b%i==0) {
                System.out.println("最大公约数:"+i);
                System.out.println("最小公倍数:"+(i*(a/i)*(b/i)));
                break;
            }
        }
    }
}