// 2. 定义两个函数,计算两个数的最大公约数和最小公倍数。
// 从原始的1开始除,直到a/b的最小值
function gcd1(a,b){
let result = 1;
let min = Math.min(a,b);
for(let i =1;i<=min;i++){
if(a%i==0 && b%i == 0){
result = i;
}
}
return result;
}
document.write("第二题:最大公约数:<br>");
document.write(gcd1(35,14));
document.write("<hr>");
// 辗转相除法,欧几里得算法
// 递归实现
function gcd2(a,b){
// 递归结束条件,可以整除
if(b == 0){
return a;
}
let r = a%b;
return gcd2(b,r);
}
document.write("第二题:最大公约数:辗转相除法-递归<br>");
document.write(gcd2(35,14));
document.write("<hr>");
// 辗转相除法 迭代实现
function gcd3(a,b){
let temp;
while(b != 0){
temp = a%b;
a = b;
b = temp;
}
return a;
}
document.write("第二题:最大公约数:辗转相除法-迭代<br>");
document.write(gcd3(35,14));
document.write("<hr>");
// 最小公倍数
// 最小公倍数算法,两个数的乘积除以最大公约数
function scm(a,b){
return (a*b)/gcd1(a,b);
}
document.write("第二题:最小公倍数:<br>");
document.write(scm(35,14));
document.write("<hr>");