一、計算最大公約數
1、小學時候一般采用質因數分解法,一般使用短除得到結果,下面用一種最初級的方法求最大公約數
function gcd2(a,b){
var result = 1;
for(var i = 1; i <= a && i <= b; i++ ){
if(a%i == 0 && b%i == 0 ){
result = i;
}
}
return result;
}
2、使用歐里幾德算法,輾轉相除法。具體原理自行百度。下面給出兩種代碼算法
遞歸
function gcd(a,b){
if(b == 0){
return a;
}
var r = a % b;
console.log(r);
return gcd(b,r);
}
迭代
function GCD(a,b){
var temp;
while(b != 0){
temp = a % b;
a = b;
b = temp;
}
return a;
}
二、最小公倍數,最小公倍數的算法,是兩個數的乘積除以最大公倍數
function scm(a,b){
return (a*b)/gcd(a,b);
}
