引言
对于 LeetCode 上数量不少的数学题,我们尽量将其按照类型划分讲解。然而很多数学题的解法并不通用,我们也很难在几道题里把所有的套路讲清楚,因此我们只选择了几道经典或是典型的题目,供大家参考。
公倍数与公因数
利用辗转相除法,我们可以很方便地求得两个数的最大公因数 (GCD);将两个数相乘再除以最大公因数即可得到最小公倍数 (LCM)。进一步地,我们也可以通过扩展欧几里得算法,在求得 a 和 b 最大公因数的同时,也得到它们的系数 x 和 y,从而使 ax + by = gcd(a, b):
1 | def gcd_extended(a, b): |
