欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS获取最大公约数的方法

程序员文章站 2022-06-29 11:13:02
已经有几种常见方法,以辗转相除法为例: function gcd(a, b) { if (a % b === 0) { return b;...

已经有几种常见方法,以辗转相除法为例:

function gcd(a, b) {
    if (a % b === 0) {
        return b;
    }
    return arguments.callee(b, a % b);
}
console.log(gcd(28, 12)); // 4
console.log(gcd(7890, 123456)); // 6
console.log(gcd(5, 13)); // 1 (公约数为1说明两数互质)

更相减损法:

// 更相减损法
function gcd(a, b) {
    if (a === b) {
        return b;
    }
    if (a > b) {
        a -= b;
    } else {
        b -= a;
    }
    return arguments.callee(a, b)
}

console.log(gcd(28, 12)); // 4
console.log(gcd(7890, 123456)); // 6
console.log(gcd(5, 13)); // 1 (公约数为1说明两数互质)