写在前面:本着弄懂每一个小知识点的学习原则,打算彻底理清一下辗转相除法。
1 什么是辗转相除法?
2 为什么辗转相除可以求解最大公约数?
可能我们会凭记忆使用这个简单的算法,但是如果我们多问自己一个为什么?思路就有点模糊了,可能会想:“是啊,为什么呢?难道又是玄学?”。下面就给出一系列疑问的证明:
首先我们给定两个数 并且约定 :
如果 ,则
如果 ,则设
根据辗转相除法,我们可以得出
疑问就在这里,等式为什么成立?我们拆分为两个子问题:
Q1: 是 的一个公约数,其中 。
因为:
所以:
由于 是正整数,所以 是 的一个公约数。
Q2: 如何证明 就是 ,换就话说如何证明是“最大”公约数?
我们来重新审视一下条件:
要想证明 是 ,也就是说证明 互质,即 。
由于 是正整数,不好直接证明,那么我们取特殊的当 时到底是否成立?即 。如果你对数论有点了解可能立马就知道 ,又因为 所以得证;如果你不知道也没关系,我们可以证明,毕竟我们就是来搞懂一个个细节的。
因为:
所以:
在 互质的情况下, 不可能含有数值为 或 因子。 否则 。
所以结论 得证。 继续使用这个结论可以得出:
所以有:
然后一直迭代就可以啦!
如果里面有什么错误欢迎指出来,可以一起探讨。