使用stein 算法计算 最大公约数和最小公倍数

本文介绍了一种比欧几里得算法更高效的用于计算最大公约数(gcd)和最小公倍数(lcm)的方法——Stein算法。该算法特别适用于大数计算,通过递归方式实现了对输入数值的有效处理。
比欧几里得算法高效的用来计算gcd和lcm的stein算法,用来大数的计算:


function gcd(a,b){
if(a == b){return a;}


var bigger;
var smaller;
if(a>b){bigger = a;smaller = b;}
else{bigger = b;smaller = a;}


if(smaller == 0){return bigger;}


if(bigger %2 == 0 && smaller % 2 == 0){
return 2*gcd(bigger/2,smaller/2);
}
else if(bigger%2 == 0){
return gcd(bigger/2,smaller);
}
else if(smaller%2 == 0){
return gcd(bigger,smaller/2);
}
else{
return gcd((bigger+smaller)/2,(bigger-smaller)/2);
}


}


function lcm(a,b){
return a*b/gcd(a,b);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值