Skip to content

最大公约数

欧几里德算法,也称为辗转相除法,递归

  1. 如果两个整数 a 和 b 中的一个为0,那么它们的最大公约数是另一个非零整数。例如,GCD(0, 8) = 8。

  2. 否则,使用辗转相除法。假设 a > b,可以将 a 除以 b 得到余数 r。然后,将 b 替换为原来的 a,将 r 替换为原来的 b,并重复步骤 1 直到 r 变为0。此时,b 就是最大公约数。

// 48 18

// 18 12

// 12 6

// 6 0

// 6
js
function findGCD(a, b) {
    if (b === 0) {
        return a;
    } else {
        return findGCD(b, a % b);
    }
}

// 例如,计算 48 和 18 的最大公约数
const gcd = findGCD(48, 18);
console.log("最大公约数是:" + gcd);