首页 > 代码库 > 使用stein 算法计算 最大公约数和最小公倍数

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


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