¿Cómo calcular el máximo común divisor de dos o más números/arrays en JavaScript?

Dados dos o más números/array de números y la tarea es encontrar el GCD de los números/elementos de array dados en JavaScript.

Ejemplos:

Input  : arr[] = {1, 2, 3}
Output : 1

Input  : arr[] = {2, 4, 6, 8}
Output : 2

El MCD de tres o más números es igual al producto de los factores primos comunes a todos los números, pero también se puede calcular tomando repetidamente el MCD de pares de números.

gcd(a, b, c) = gcd(a, gcd(b, c))
            = gcd(gcd(a, b), c)
            = gcd(gcd(a, c), b)

Para una array de elementos, hacemos lo siguiente. También verificaremos el resultado si el resultado en cualquier paso se convierte en 1, simplemente devolveremos 1 como mcd (1, x) = 1.

result = arr[0]
For i = 1 to n-1
  result = GCD(result, arr[i])

A continuación se muestra la implementación del enfoque anterior.

Ejemplo de código:

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;
    document.write(findGCD(arr, n) + "<br>");
  
</script>

Producción: 

2

Complejidad de tiempo : O(N * log(M)), donde M es el elemento más pequeño de la array y N es la longitud de la array.

Publicación traducida automáticamente

Artículo escrito por swapnil074 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *