欧几里得算法第二弹---计算多个数的最大公约数

如果要求多个数的 GCD,可以先求前两个数的 GCD,然后用这个结果与下一个数求 GCD,依次类推。 为什么可以用前两个数的 GCD 与下一个数继续求 GCD,从而得到所有数的 GCD 呢?(之前我不知道,自己也没推过了。是的,我很笨)

了解到之后,知道这是GCD的结合性和传递性


1.GCD的结合性

GCD 运算满足结合性,即:

GCD(a,b,c)=GCD(GCD(a,b),c)

也就是说,多个数的 GCD 可以通过逐步计算两两数的 GCD 来得到。


2.GCD的传递性

如果 d 是 a 和 b 的公约数,并且 d 也是 b 和 c 的公约数,那么 d 一定也是 a 和 c 的公约数,所以 d 一定是 a ,b  ,c 的公约数。因此,逐步计算GCD 不会丢失任何可能的公约数。


3.为什么可以逐步计算?

假设我们有三个数 a、b、c,我们需要计算 GCD(a,b,c)。

  • 首先计算 GCD(a,b),得到结果 d。

  • 然后计算 GCD(d,c),得到最终结果。

为什么可以这样做?(体现的是结合性)


 4.拓展到多个数

对于多个数 a1,a2,a3,…,an,我们可以逐步计算:

GCD(a1,a2,a3,...,an) = GCD(GCD(GCd(a1,a2),a3) , ...,an)

每一步都保证当前的 GCD 是前面所有数的公约数,同时继续与下一个数求 GCD,确保最终结果是所有数的最大公约数。


5.数学证明

假设 d=GCD(a,b,c),我们需要证明:

d=GCD(GCD(a,b),c)

  • 因为 d 是 a、b、c 的公约数,所以 d 能整除 a 和 b,因此 d 是 GCD(a,b) 的约数。

  • 同时,d 能整除 c,所以 d 是 GCD(GCD(a,b),c) 的约数。

  • 反过来,GCD(GCD(a,b),c) 也能整除 a、b、c,因此它一定是 d 的约数。

  • 综上,d=GCD(GCD(a,b),c)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值