#include <stdio.h>
//先得知道最小公倍数等于两数之积除以其最大公约数
//所以只要先求最大公约数就行
//辗转相除法求最大公约数
int main() {
long long n, m,z,q;//(1 ≤ n ≤ 109,1 ≤ m ≤ 109)
scanf("%lld %lld",&n,&m);//使用long long类型,不然后面输出出现负数
q=m*n;//先计算出两数之积
while(1)
{
if(m>n)//判断m,n大小,使n%m!=0
{
z=n;
n=m;
m=z;
}
if(n%m==0)//成立即m为最大公约数
{
break;
}
else
{
z=m;
m=n%m;
n=z;//辗转相除法
}
}
printf("%lld",m+q/m);//最小公倍数=q/m
return 0;
}

京公网安备 11010502036488号