#include<stdio.h>
int gcd(int m,int n)
{
while(m%n!=0) //循环
{
int temp=n;
n=m%n;
m=temp;
}
return n;
}
int main()
{
int m,n;
scanf("%d%d",&m,&n);
printf("%d\n",gcd(m,n));
printf("%d\n",(m*n)/gcd(m,n));
return 0;
}
#include<stdio.h>
int gcd(int a,int b)
{
if(a%b==0) return b; //递归
else return gcd(b,a%b);
}
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",gcd(a,b));
printf("%d\n",(a*b)/(gcd(a,b))); //最小公倍数为两数乘积除以最大公约数
return 0;
}