辗转相除法,又称欧几里德算法,是求最大公约数的一种方法。

    image.png

    利用递归的方式,去实现求两个整数的最大公约数:

    1. /**
    2. * 获取两个数的最大公约数
    3. * @param {number} a 较大的数
    4. * @param {number} b 较小的数
    5. */
    6. function highestCommonFactor(a, b) {
    7. // 取余
    8. const remainder = a % b
    9. // 如果余数为 0,b 的最大公约数
    10. if (remainder === 0) {
    11. return b
    12. }
    13. return highestCommonFactor(b, remainder)
    14. }