#define _CRT_SECURE_NO_WARNINGS 1
#include <stdlib.h>
#include <stdio.h>
void CompareSizes(int* x, int* y)//比较并排列大小
{
int a = *x;
int b = *y;
if (a > b)
{;}
else
{
a = a ^ b;
b = a ^ b;
a = a ^ b;
}
*x = a;
*y = b;
}
int Gcd(int x, int y) //辗转相除法求最大公约数(递归)
{
if (y == 0)
{
return x;
}
else
{
return Gcd(y, x % y);
}
}
/*
int Gcd(int x, int y) //辗转相除法求最大公约数(while循环)
{
int r = 0;
while (r = x % y)
{
x = y;
y = r;
}
return y;
}
*/
int Lcm(int x, int y) //试除法求最小公倍数
{
int r = 1;
while((x*r)%y)
{
r++;
}
return x * r;
}
int main()
{
int a, b ;
scanf("%d%d", &a, &b);
CompareSizes(&a, &b);
printf("%d ", Gcd(a, b)); //最大公约数
printf("%d", Lcm(a, b)); //最小公倍数
return 0;
}