Dado un número entero N , la tarea es encontrar la parte entera de la media geométrica de los divisores de N . La media geométrica es un tipo especial de promedio en el que multiplicamos los números y luego sacamos una raíz cuadrada (para dos números), una raíz cúbica (para tres números), etc.
Ejemplos:
Entrada: N = 4
Salida: 2
Los divisores de 4 son 1, 2 y 4
Media geométrica = (1 * 2 * 4) (1/3) = 8 (1/3) = 2
Entrada: N = 16
Salida: 8
Los divisores de 16 son 1, 2, 4, 8 y 16
Media geométrica = (1 * 2 * 4 * 8 * 16) (1/5) = 1024 (1/5) = 4
Planteamiento: Se puede observar que se formará una serie para los valores de N como 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, …. cuyo término N es ⌊√n⌋ . _ A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to return the integer // part of the geometric mean // of the divisors of n int geometricMean(int n) { return sqrt(n); } // Driver code int main() { int n = 16; cout << geometricMean(n); return 0; }
Java
// Java implementation of the approach class GFG { // Function to return the integer // part of the geometric mean // of the divisors of n static int geometricMean(int n) { return (int) Math.sqrt(n); } // Driver code public static void main(String []args) { int n = 16; System.out.println(geometricMean(n)); } } // This code is contributed by Rajput-Ji
Python3
# Python3 implementation of the approach from math import sqrt # Function to return the integer # part of the geometric mean # of the divisors of n def geometricMean(n) : return int(sqrt(n)); # Driver code if __name__ == "__main__" : n = 16; print(geometricMean(n)); # This code is contributed by AnkitRai01
C#
// C# implementation of the approach using System; class GFG { // Function to return the integer // part of the geometric mean // of the divisors of n static int geometricMean(int n) { return (int) Math.Sqrt(n); } // Driver code public static void Main(String []args) { int n = 16; Console.WriteLine(geometricMean(n)); } } // This code is contributed by PrinciRaj1992
Javascript
<script> // Javascript implementation of the approach // Function to return the integer // part of the geometric mean // of the divisors of n function geometricMean(n) { return Math.sqrt(n); } // Driver code var n = 16; document.write(geometricMean(n)); </script>
4
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)