码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2014-11-06 23:35:45      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   使用   java   sp   on   2014   

比欧几里得算法高效的用来计算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 算法计算 最大公约数和最小公倍数

标签:style   blog   io   ar   使用   java   sp   on   2014   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!