js求两个数的最大公约数

1,

lcm=function(m,n){//辗转相除法 求最大公约数
	var u=+m,v=+n,t=v;
	while(v!=0){
		t=u%v;
		u=v;
		v=t;
	}
	return u
}




2,

function commonDivisor2(num1,num2) {//更相减损法
var index=0;
while (num1%2==0 && num2%2 ==0) {
num1 = num1/2;
num2 = num2/2;
index += 1;
}
if ((num1-num2) < 0) {
var k = num1;
num1 = num2;
num2 = k;
}
var cha = num1-num2;
while (cha != num2) {

if (cha -num2>0) {
num1 = cha;

} else {
num1 = num2;
num2 = cha;
}
cha = num1-num2;
}
if (index == 0) {
return cha;
} else {
return cha*index*2;
}

}



原文地址:https://www.cnblogs.com/susanws/p/6186618.html