Dada una array con N enteros positivos. Encuentre el MCD de factoriales de todos los elementos de la array.
Ejemplos:
Input : arr[] = {3, 4, 8, 6} Output : 6 Input : arr[] = {13, 24, 8, 5} Output : 120
Enfoque: para encontrar el MCD del factorial de todos los elementos, en primer lugar, calcule el factorial de todos los elementos y luego averigüe su MCD. Pero esto parece ser un proceso muy largo. MCD de dos números es el mayor número que divide a ambos números. Por lo tanto, MCD del factorial de dos números es el valor del factorial del número más pequeño.
Por ejemplo, GCD de 3! (6) y 5! (120) es 3! (es decir, 6) en sí mismo.
Por lo tanto, para encontrar el MCD del factorial de todos los elementos de la array dada, encuentre el elemento más pequeño y luego imprima su factorial que será nuestra respuesta requerida.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the above approach #include <bits/stdc++.h> using namespace std; // Implementation of factorial function int factorial(int n) { return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n; } // Function to find GCD of factorial of // elements from array int gcdOfFactorial(int arr[], int n) { // find the minimum element of array int minm = arr[0]; for (int i = 1; i < n; i++) minm = minm > arr[i] ? arr[i] : minm; // return the factorial of minimum element return factorial(minm); } // Driver Code int main() { int arr[] = { 9, 12, 122, 34, 15 }; int n = sizeof(arr) / sizeof(arr[0]); cout << gcdOfFactorial(arr, n); return 0; }
Java
// Java implementation of the above approach class GFG { // Implementation of factorial function static int factorial(int n) { return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n; } // Function to find GCD of factorial of // elements from array static int gcdOfFactorial(int []arr, int n) { // find the minimum element of array int minm = arr[0]; for (int i = 1; i < n; i++) minm = minm > arr[i] ? arr[i] : minm; // return the factorial of minimum element return factorial(minm); } // Driver Code public static void main (String[] args) { int []arr = { 9, 12, 122, 34, 15 }; int n = arr.length; System.out.println(gcdOfFactorial(arr, n)); } } // This code is contributed by mits
Python3
# Implementation of factorial function def factorial(n): if n == 1 or n == 0: return 1 else: return factorial(n - 1) * n # Function to find GCD of factorial # of elements from array def gcdOfFactorial(arr, n): # find the minimum element # of array minm = arr[0] for i in range(1, n): if minm > arr[i]: minm = arr[i] else: arr[i] = minm # return the factorial of # minimum element return factorial(minm) # Driver Code arr = [9, 12, 122, 34, 15 ] n = len(arr) print(gcdOfFactorial(arr, n)) # This code is contributed # by mohit kumar
C#
// C# implementation of the above approach using System; class GFG { // Implementation of factorial function static int factorial(int n) { return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n; } // Function to find GCD of factorial of // elements from array static int gcdOfFactorial(int []arr, int n) { // find the minimum element of array int minm = arr[0]; for (int i = 1; i < n; i++) minm = minm > arr[i] ? arr[i] : minm; // return the factorial of minimum element return factorial(minm); } // Driver Code static void Main() { int []arr = { 9, 12, 122, 34, 15 }; int n = arr.Length; Console.WriteLine(gcdOfFactorial(arr, n)); } } // This code is contributed by mits
PHP
<?php // PHP implementation of the above approach // Implementation of factorial function function factorial($n) { return ($n == 1 || $n == 0) ? 1 : factorial($n - 1) * $n; } // Function to find GCD of factorial of // elements from array function gcdOfFactorial($arr, $n) { // find the minimum element of array $minm = $arr[0]; for ($i = 1; $i < $n; $i++) $minm = $minm > $arr[$i] ? $arr[$i] : $minm; // return the factorial of minimum element return factorial($minm); } // Driver Code $arr = array( 9, 12, 122, 34, 15 ); $n = count($arr); echo gcdOfFactorial($arr, $n); // This code is contributed by Srathore ?>
Javascript
<script> // JavaScript implementation of the above approach // Implementation of factorial function function factorial(n) { return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n; } // Function to find GCD of factorial of // elements from array function gcdOfFactorial(arr , n) { // find the minimum element of array var minm = arr[0]; for (i = 1; i < n; i++) minm = minm > arr[i] ? arr[i] : minm; // return the factorial of minimum element return factorial(minm); } // Driver Code var arr = [ 9, 12, 122, 34, 15 ]; var n = arr.length; document.write(gcdOfFactorial(arr, n)); // This code is contributed by todaysgaurav </script>
362880
Complejidad temporal: O(n)
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por Shivam.Pradhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA