辗转相减 vs 辗转相除

两种经典方法求最大公约数 (GCD) 的流程对比

欧几里德算法(Euclidean Algorithm)是计算两个非负整数最大公约数(Greatest Common Divisor, GCD)的经典且高效的方法。它主要有两种形式:基于重复减法的“辗转相减法”和基于取余运算的“辗转相除法”。这两种方法都利用了 `gcd(a, b) = gcd(b, a mod b)`(相除法)或 `gcd(a, b) = gcd(a-b, b)`(a>b, 相减法)的核心原理。通过下面的交互式演示,您可以直观地观察并比较这两种算法的执行步骤和效率差异。
请输入两个不同的正整数
辗转相减法 (Subtraction)
辗转相除法 (Division/Modulo)
性能对比
计算步骤数比较
0
0
辗转相减法:0 辗转相除法:0
模拟执行时间比较 (ms)
0
0
辗转相减法:0 ms 辗转相除法:0 ms
计算结果 GCD(84, 36) = 12
通过本次对比 (a=84, b=36),我们可以看出:辗转相除法通常比辗转相减法需要更少的步骤(此例中 相除法 3 步 vs 相减法 7 步),特别是当两个数差距较大时,效率优势更明显。相除法利用取余运算一步相当于完成了多次相减,因此计算速度更快。然而,相减法的逻辑更为简单直观,更容易理解欧几里德算法的基本思想。