//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변수 씀