最大公约数与最小公倍数

一.最大公约数

这里我们介绍辗转相除法

最大公约数与最小公倍数_第1张图片

我们需要记住这两句话:

d是a,b的公因数当且仅当d是b,k的公因数,k是a%b

当b = 0时,a和b的最大公因数是a

int gcd(int a, int b){
    return b ? gcd(b, a % b) : a;
}

二. 最小公倍数

当求两个数的最小公倍数时,lcm(a, b) = (a * b) / gcd(a, b)

当求三个数的最小公倍数时

最大公约数与最小公倍数_第2张图片

 可以依据这个公式进行代码的书写。

对于求三个数的最小公倍数,可以做一下该题进行巩固。

[Code+#1]晨跑 - 洛谷

你可能感兴趣的:(c++,学习)