#include <stdio.h>
int main() {
long n = 0, m = 0, remainder = 0, max = 0,
min = 0; //使用long类型变量,避免数据溢出
scanf("%ld%ld", &n, &m);
//定义两个变量来存放m,n的值,并进行大小判断;
//因为后续求最小公倍数还需用到初始的m,n值,所以不可直接改变其初始值
max = m >= n ? m : n;
min = m < n ? m : n;
//辗转相除法
while (max % min) { //余数为0时循环结束,最大公约数为min
remainder = max % min;
max = min; //余数一定小于除数,所以不用判断remainder和min大小
min = remainder;
}
printf("%ld", min + m * n / min); //最大公约数*最小公倍数 = m*n;
return 0;
}

京公网安备 11010502036488号