两个整数的最小公倍数 (LCM) 是能同时被这两个整数整除的最小正整数。
例如,6 和 8 的最小公倍数是 24。
示例 1:使用 while 循环和 if 语句计算 LCM
// program to find the LCM of two integers
// take input
const num1 = prompt('Enter a first positive integer: ');
const num2 = prompt('Enter a second positive integer: ');
// higher number among number1 and number2 is stored in min
let min = (num1 > num2) ? num1 : num2;
// while loop
while (true) {
if (min % num1 == 0 && min % num2 == 0) {
console.log(`The LCM of ${num1} and ${num2} is ${min}`);
break;
}
min++;
}
输出
Enter a first positive integer: 6 Enter a second positive integer: 8 The LCM of 6 and 8 is 24
在上面的程序中,用户被提示输入两个正整数。
用户输入的较大数存储在一个 min 变量中。两个数的 LCM 不可能小于较大的那个数。
while 循环与 if
语句一起使用。在每一次迭代中,
- 变量
min
分别除以 num1 和 num2。 - 如果两个数的余数都等于 0,则该数就是 LCM,并且 break 语句会终止程序。
- 如果两个数的余数不等于 0,则将 min 的值增加 1,循环继续。
while
循环将一直持续到条件满足为止。if (min % num1 == 0 && min % num2 == 0)
两个数的 LCM 也可以使用以下公式计算:
LCM = (num1*num2) / HCF
要了解如何计算 HCF,请访问 JavaScript 求最大公约数 (HCF) 程序。
示例 2:使用 HCF 计算 LCM
// program to find the LCM of two integers
let hcf;
// take input
const number1 = prompt('Enter a first positive integer: ');
const number2 = prompt('Enter a second positive integer: ');
// looping from 1 to number1 and number2 to find HCF
for (let i = 1; i <= number1 && i <= number2; i++) {
// check if is factor of both integers
if( number1 % i == 0 && number2 % i == 0) {
hcf = i;
}
}
// find LCM
let lcm = (number1 * number2) / hcf;
// display the hcf
console.log(`HCF of ${number1} and ${number2} is ${lcm}.`);
输出
Enter a first positive integer: 6 Enter a second positive integer: 8 The LCM of 6 and 8 is 24.
在上面的程序中,首先计算这两个数的 HCF。然后使用给定的公式计算 LCM。