2022-03-09 辗转相除求gcd的原理 题:求正整数m, n的最大公约数 解:不妨设 m > n,令 m % n = r。(r 为自然数)。 若 r = 0,则 n 即为所求,gcd(m,n) = n; 否则,有: r = m - kn(k 为正整数),则有: 可知: **gcd(m,n) = gcd(n,r)** 令 r0 = n,r1 = r,ri+1 = ri-1 % ri(i 为正整数),则根据上式,有: gcd(n,r) = gcd(r0,r1) = gcd(r1,r2) = ... = gcd(ri,ri+1) = ... 上述等值变换,要么因为序列 { ri } 递减至 1 而结束,要么因为 ri 能被 ri+1 整除 而提前终止。由于 1 可整除任何正整数,故最终总有: **gcd(m,n) = gcd(rq,rq+1) = rq+1** 前一篇 IDEA 一键部署 Java Web应用至Tomcat