直接分享两个公式 :
求两数最大公倍数 :
a 为其中较大的数,b为其中较小的数。
设变量 ans。
ans = a % b,a = b % ans,b = ans % a (不断变小) 重复以上步骤直到a,b,ans中有一个为0时,输出被取余的数(如 ans % a = 0,此时b = 0,输出a)
两数最小公倍数和最大公约数的关系 :
a * b = gcd(a,b) * lcm(a,b),即两数乘积等于最大公约数与最小公倍数的乘积。
接下来就好办了,在此我只遍历了sqrt(gcd(a,b) * lcm(a,b))遍,再将结果乘2输出节约时间,不过事后发现没有必要。
以下是AC程序:
谢谢!