两个数的最大公约数

dd / ds = q...r(dd除以ds等于q余r)。

如果: ds / r = n...0
dd = q * n * r + r
不存在r', r < r' < ds且dd = ds * q + r'

如果: ds / r = q2...r2
如果: r % r2 = n2...0
dd = q * (q2 * n2 * r2 + r2) + (n2 * r2)
不存在r2', r2 < r2' < r且ds = r * q2 + r2'

求dd与ds的最大公约数,循环以上步骤直至余数为0,那时的除数就是最大公约数。

附:求两个数的最大公约数JS代码

function gcd(a, b) {
  let r = a % b;
  
  r ? gcd(b, r) : console.log(b);
}

你可能感兴趣的:(两个数的最大公约数)