//int a, b:= 0 < a,b <= 10000. gcd(a,b), lcm(a,b)?

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>


int a, b, pa, pb;

int gcd(a, b)

{

    if (a > b)

    {

        while (a % b != 0)

        {

            pa = a;

            pb = b;

            a = pb;

            b = (pa % b);

        }

        return b;

    }

    else if (a < b)

    {

        while (b % a != 0)

        {

            pb = b;

            pa = a;

            b = pa;

            a = (pb % a);

        }

        return a;

    }

    else if (a == b)

    {

        return b;

    }

}


int lcm(a, b)

{

    return (a * b) / gcd(a, b);

}


int main()

{

    scanf("%d %d", &a, &b);

    printf("%d\n", gcd(a, b));

    printf("%d", lcm(a, b));

    return 0;

}

//변수 a, b 두개만 써보려 했는데 도저히 안되서 무지성 6변수 씀