两个整数的最大公约数(HCF)或最大公约数(GCD)是可以整除两个整数的最大整数(无余数)。
例如,60 和 72 的 HCF 是 12。
示例 1:使用 for 循环查找 HCF
// program to find the HCF or GCD of two integers
let hcf;
// take input
const number1 = parseInt(prompt('Enter a first positive integer: '));
const number2 = parseInt(prompt('Enter a second positive integer: '));
// looping from 1 to number1 and number2
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;
}
}
// display the hcf
console.log(`HCF of ${number1} and ${number2} is ${hcf}.`);
输出
Enter a first integer: 60 Enter a second integer: 72 HCF of 60 and 72 is 12.
在上面的程序中,用户被提示输入两个正数。
for
循环用于迭代从 1 到用户输入的数字。
if
条件和模运算符 %
用于查找两个数字的 HCF。
在上述条件中,如果两个整数 number1 和 number2 都能被 i 整除,则计算满足该条件的最大整数值。
示例 2:使用 while 循环和 if...else 查找 HCF
// program to find the HCF or GCD of two integers
// take input
let number1 = parseInt(prompt('Enter a first positive integer: '));
let number2 = parseInt(prompt('Enter a second positive integer: '));
// looping until both numbers are equal
while(number1 != number2){
if(number1 > number2) {
number1 -= number2;
}
else {
number2 -= number1;
}
}
// display the hcf
console.log(`HCF is ${number1}`);
输出
Enter a first integer: 60 Enter a second integer: 72 HCF is 12
在上面的程序中,使用了带 if...else
语句的 while
循环。
在每次迭代中,将较小的整数减去较大的整数。并将结果赋给保存较大整数的变量。
while
循环一直持续到两个整数相等为止。