MathLabs
定理已证明

欧几里得算法的不变性与终止性

命题陈述

对满足 a=bq+r, 0≤r<ba=bq+r,\ 0\le r<b 的整数 a≥b>0a\ge b>0,aa 与 bb 的公因数集合等于 bb 与 rr 的公因数集合;因此 gcd⁡(a,b)=gcd⁡(b,r)\gcd(a,b)=\gcd(b,r),且重复带余除法必在有限步内终止,最后一个非零余数恰为 gcd⁡(a,b)\gcd(a,b)。

为什么成立?

从 aa 中减去 bb 的倍数不会凭空产生或消除与 bb 的公因数:任何同时整除 aa 和 bb 的数也必然整除余下的 r=a−bqr=a-bq,反之亦然。

证明思路

第一步(公因数集合相同)。设整数 dd 同时整除 aa 和 bb,即对整数 x,yx,y 有 a=dxa=dx、b=dyb=dy。则 r=a−bq=dx−dyq=d(x−yq)r=a-bq=dx-dyq=d(x-yq),故 d∣rd\mid r,即 dd 同时整除 bb 和 rr。反之,若 dd 同时整除 bb 和 rr,设 b=dyb=dy、r=dzr=dz,则 a=bq+r=dyq+dz=d(yq+z)a=bq+r=dyq+dz=d(yq+z),故 d∣ad\mid a,即 dd 同时整除 aa 和 bb。

第二步(最大公约数相等)。由于数对 (a,b)(a,b) 与 (b,r)(b,r) 拥有完全相同的公因数集合,它们的最大元素必然相同:gcd⁡(a,b)=gcd⁡(b,r)\gcd(a,b)=\gcd(b,r)。

第三步(有限步终止)。每一步带余除法产生的余数都满足 0≤r<b0\le r<b,因此第二个数构成的序列 b>r1>r2>⋯≥0b > r_1 > r_2 > \cdots \ge 0 是严格递减的非负整数序列。这样的序列最多经过 bb 步就会到达 00;在 gcd⁡(rk−1,rk)=gcd⁡(rk,0)=rk\gcd(r_{k-1},r_k)=\gcd(r_k,0)=r_k 这一步,最后一个非零余数 rkr_k 就是 gcd⁡(a,b)\gcd(a,b)。

用到此定理的主题

分步证明

该定理暂无分步证明。

参考文献

  1. David M. Burton (2010). Elementary Number Theory
  2. John H. Conway, Richard K. Guy (1996). The Book of Numbers · DOI:10.1007/978-1-4612-4072-3