您的位置:首页 > 其它

最大公约数和最小公倍数的求解

2017-07-13 22:01 381 查看

最大公约数和最小公倍数的求解

两数的最大数

function max(a, b) {
return a > b ? a : b;
}


两数的最小数

function min(a, b) {
return a < b ? a : b;
}


最大公约数

方法一:暴力求解法

function gcd1(a, b) {
for (var i = min(a, b); i > -1; i--) {
if (a % i == 0 && b % i == 0) {
return i;
}
}
}


function gcd2(a, b) {
var x = min(a, b);
if (x == 0) {
return x;
}
// console.log(x);
for (var i = x; i > 0; i--) {
if (a % i == 0 && b % i == 0) {
return i;
}
}
}


方法二:辗转相除法

function gcd3(a, b) {
var xi = min(a, b);
var xa = max(a, b);
if (xi == 0) {
return xi;
}
var temp;
temp = xa % xi;
if (temp != 0) {
xa = xi;
xi = temp;
temp = xa % xi;
}
return xi;
}


最小公倍数

方法一:暴力求解法

func
a136
tion lcm1(a, b) {
if (a == 0 || b == 0) {
alert("最小公倍数不考虑0哦!");
}
for (var i = 1; i <= a * b; i++) {
if (i % a == 0 && i % b == 0) {
return i;
}
}
}


方法二:采用最大公约数来求解

function lcm2(a, b) {
var gcd = gcd3(a, b);
return a * b / gcd;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: