求两整数相除_1月第11题:JS 使用两种方法计算两个整数的 最大公约数

本文介绍如何使用JavaScript实现欧里几德算法(辗转相除法)来计算两个整数的最大公约数。这种方法基于两数相除余数与最大公约数的性质,是求解最大公约数的常见方法之一。
摘要由CSDN通过智能技术生成

0474f9ffc5c67586188547dfe75ca171.png

最大公约数指两个或多个整数共有约数中最大的一个

  • 小学时候一般采用质因数分解法,一般使用短除得到结果,下面用一种最初级的方法求最大公约数

function gcd(a,b) {    var result = 1;    for(var i = 1; i <= a && i <= b; i++ ){        if(a%i == 0 && b%i == 0 ){            result = i;        }    }    return result;}
  • 使用欧里几德算法,辗转相除法

    计算原理依赖于下面的定理:

    定理:两个整数的最大公约数等于其中较小的那个数两数相除余数的最大公约数。

function gcd(a,b){    if(b == 0){        return a;    }    var r = a % b;    return gcd(b,r);}

【扩展】求最小公倍数:

最大公约数(gcd)和最小公倍数(lcm)的关系:

gcd(a, b) * lcm(a, b) = ab

function lcm(a, b){       return a * b / gcd(a, b);}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值