LCM(最小公倍数)和 GCD(最大公因数)在做 ACM 题时经常会用到,求两个整数的 LCM 和 GCD 有两种方法。
证明如下: a = qb + r,其中 q 为整数,0 \leq a \lt b 。 设 d = (a, b),则 b = md,a = nd。 则 a = qmd + r = nd,进一步推出 r = (n-qm)d 。 故 d 也是 r 的因数,即 d \leq (b, r) = (b, a\%b) 。 同理,设 p = (a, a\%b) = (a, r),则r = sp,b = tp,d \leq p 。 则 a = qtp + sp = (qt+s)p 。 故 p 也是 a 的因数, 即 p \leq (a, b) = d。 综上,d = p,原命题得证 。
所以要求两个数的最大公因数,只需根据递推式不断进行递推,并更新a = b,b = a\%b, 直到 a\%b = 0为止,则此时的 a 即为 (a, b). 求得 (a, b) 以后,则 [a, b](最小公倍数)便可由 ab/(a, b) 求得 。
证明略 。
由此可知,a = p^{a_1}_1 p^{a_2}_2 \cdots p^{a_n}_n,b = p^{b_1}_1 p^{b_2}_2 \cdots p^{b_n}_n . 其中 a_i, b_i \geq 0 。 故
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有