JavaScript 如何计算两个或多个数字/数组的最大公约数
在本文中,我们给出了两个或多个数字/数组和任务是在JavaScript中找到给定数字/数组元素的最大公约数。
示例:
Input : arr[] = {1, 2, 3}
Output : 1
Input : arr[] = {2, 4, 6, 8}
Output : 2
三个或更多个数的 GCD (最大公约数)等于所有数的公共质因数的乘积,但也可以通过重复计算一对数的最大公约数来计算。
gcd(a, b, c) = gcd(a, gcd(b, c))
= gcd(gcd(a, b), c)
= gcd(gcd(a, c), b)
对于元素的数组,我们进行如下操作。同时,如果在任何步骤中的结果为1,我们将直接返回1,因为gcd(1, x) = 1。
result = arr[0]
For i = 1 to n-1
result = GCD(result, arr[i])
下面是上述方法的实现。
示例: 在这个例子中,我们将使用Javascript找到数组元素的最大公约数。
<script>
// Function to return gcd of a and b
function gcd(a, b) {
if (a == 0)
return b;
return gcd(b % a, a);
}
// Function to find gcd of array
// of numbers
function findGCD(arr, n) {
let result = arr[0];
for (let i = 1; i < n; i++) {
result = gcd(arr[i], result);
if (result == 1) {
return 1;
}
}
return result;
}
// Driver code
let arr = [2, 4, 6, 8, 16];
let n = arr.length;
console.log(findGCD(arr, n));
</script>
输出:
2