使用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);
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。