hdu 2028 Lowest Common Multiple Plus(最大公约数最小公倍数)(备战LQB)

博客详细解析了如何求解多个数的最低共同倍数,针对HDU 2028题目提供了具体算法和步骤,适合准备相关竞赛的读者学习。
摘要由CSDN通过智能技术生成

题意是求几个数的最小公倍数。


教程:

//Programing
我这里用GCD递归定理:对任意非负数a 和 任意正整数b,
gcd(a, b) = gcd(b, a mod b)
这个就是欧几里德算法了。  

//Math
GCD递归定理的证明。
有很多人喜欢打破沙锅问到底。
曾经很多人也问过我gcd算法的原理,这里给你们回答:

下面提到的 a|b 就是表示a能被b整除。
首先我们来看一下两条定理,都很好理解的。

d|a 并且 d|b 蕴含着 d|(ax + by) ① 
a|b 且 b|a 蕴含着 a = ±b ② 
从上述②式就可以看出,只要证明gcd(a, b) 与 gcd(b, a mod b)可以互相整除,就能证明它们相等。
先来证明gcd(a, b) | gcd(b, a mod b)。 
设d = gcd(a, b)
 => 
1. d|a
2. d|b

∵(a mod b) = a - q×b; (q = 「a/b」)
即(a mod b)是a与b的线性组合。
由①式得:
d | (a - q×b) <==> d | (a mod b)
由①式得:
d | gcd(b, a mod b) <==> gcd(a, b) | gcd(b, a mod b)  ③

证明gcd(b, a mod b) | gcd(a, b)。

设d = gcd(b, a mod b)
 => 
1. d|b
2. d|(a mod b)

∵a = (a mod b) + q×b; (q = 「a/b」)
即 a 是b与(a mod b)的线性组合。
由①式得:
d | a
∵d | b
由①式得:
d | gcd(a, b) <==> gcd(b, (a mod b)) | gcd(a, b)    ④

运用定理②,在根据③④就可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值