跳到主要内容

JavaScript程序寻找最大公约数

要理解这个示例,你应该掌握以下JavaScript编程主题的知识:

两个整数的最高公因数(HCF)或最大公约数(GCD)是可以准确无余地整除这两个整数的最大整数。

例如,6072 的 HCF 是 12

示例 1:使用 for 循环查找 HCF

// 程序查找两个整数的 HCF 或 GCD

let hcf;
// 获取输入
const number1 = prompt("请输入第一个正整数: ");
const number2 = prompt("请输入第二个正整数: ");

// 从 1 循环到 number1 和 number2
for (let i = 1; i <= number1 && i <= number2; i++) {
// 检查是否是两个整数的因子
if (number1 % i == 0 && number2 % i == 0) {
hcf = i;
}
}

// 显示 hcf
console.log(`数字 ${number1}${number2} 的 HCF 是 ${hcf}`);

输出

请输入第一个整数: 60
请输入第二个整数: 72
数字 60 和 72 的 HCF 是 12。

在上述程序中,提示用户输入两个正数。

使用 for 循环从 1 迭代到用户输入的数字。

使用 if 条件和模运算符 % 查找两个数字的 HCF。

在上述条件中,如果两个整数 number1 和 number2 能被 i 准确无余地整除,则计算满足该条件的最高整数值。

示例 2:使用 while 循环和 if...else 查找 HCF

// 程序查找两个整数的 HCF 或 GCD

// 获取输入
let number1 = prompt("请输入第一个正整数: ");
let number2 = prompt("请输入第二个正整数: ");

// 循环直到两个数字相等
while (number1 != number2) {
if (number1 > number2) {
number1 -= number2;
} else {
number2 -= number1;
}
}

// 显示 hcf
console.log(`HCF 是 ${number1}`);

输出

请输入第一个整数: 60
请输入第二个整数: 72
HCF 是 12

在上述程序中,使用了 while 循环和 if...else 语句。

在每次迭代中,从较大的整数中减去较小的整数,并将结果赋值给保存较大整数的变量。

while 循环持续进行,直到两个整数相等。