JavaScript 如何计算两个或多个数字/数组的最大公约数

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程