首页 > 编程语言 > 详细

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

时间:2014-11-06 23:35:15      阅读:247      评论:0      收藏:0      [点我收藏+]
比欧几里得算法高效的用来计算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 算法计算 最大公约数和最小公倍数

原文:http://blog.csdn.net/lan_liang/article/details/40870609

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!