Dado un número N , la tarea es encontrar los N números tales que su suma sea un cubo perfecto .
Ejemplos:
Entrada: N = 3
Salida: 1 7 19
Explicación:
Suma de números = 1 + 7 + 19 = 27,
que es el cubo perfecto de 3 => 3 3 = 27Entrada: N = 4
Salida: 1 7 19 37
Suma de números = 1 + 7 + 19 + 37 = 64,
que es el cubo perfecto de 4 => 4 3 = 64
Planteamiento:
Al considerar Números Hexagonales Centrados que establece que:
La suma de los primeros N números hexagonales centrados es un cubo perfecto de N
Entonces, a partir de Números Hexagonales Centrados, los primeros N términos de la serie darán los N números tales que su suma es un cubo perfecto.
Por ejemplo:
For N = 1, Centered Hexagonal Series = 1 and 13 = 1 Hence, {1} is the required N number For N = 2, Centered Hexagonal Series = 1, 7 and 23 = 1 + 7 = 8 Hence, {1, 7} are the required N number For N = 3, Centered Hexagonal Series = 1, 7, 19 and 33 = 1 + 7 + 19 = 27 Hence, {1, 7, 19} are the required N number . . and so on.
Por lo tanto, se puede decir que imprimir los primeros N términos de los Números Hexagonales Centrados dará los N números requeridos.
Además, el término N-ésimo de los Números Hexagonales Centrados es:
Algoritmo:
- Iterar un bucle con una variable de bucle (por ejemplo, i ) de 1 a N y para cada una de las iteraciones:
- Encuentre el término N del número hexagonal centrado usando las fórmulas 3*i*(i-1) + 1 .
- Agregue el i -ésimo término en una array.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation to find the N // numbers such that their // sum is a perfect cube #include <bits/stdc++.h> using namespace std; // Function to find the N // numbers such that their // sum is a perfect cube void findNumbers(int n) { int i = 1; // Loop to find the Ith term // of the Centered Hexagonal number while (i <= n) { cout << (3 * i * (i - 1) + 1) << " "; i++; } } // Driver Code int main() { int n = 4; // Function Call findNumbers(n); }
Java
// Java implementation to find the N // numbers such that their // sum is a perfect cube class GFG { // Function to find the N // numbers such that their // sum is a perfect cube static void findNumbers(int n) { int i = 1; // Loop to find the Ith term // of the Centered Hexagonal number while (i <= n) { System.out.print((3 * i * (i - 1) + 1) + " "); i++; } } // Driver Code public static void main (String[] args) { int n = 4; // Function Call findNumbers(n); } } // This code is contributed by AnkitRai01
C#
// C# implementation to find the N // numbers such that their // sum is a perfect cube using System; public class GFG { // Function to find the N // numbers such that their // sum is a perfect cube static void findNumbers(int n) { int i = 1; // Loop to find the Ith term // of the Centered Hexagonal number while (i <= n) { Console.Write((3 * i * (i - 1) + 1) + " "); i++; } } // Driver Code public static void Main() { int n = 4; // Function Call findNumbers(n); } } // This code is contributed by AnkitRai01
Python3
# Python3 implementation to find the N # numbers such that their # sum is a perfect cube # Function to find the N # numbers such that their # sum is a perfect cube def findNumbers(n): i = 1 # Loop to find the Ith term # of the Centered Hexagonal number while (i <= n): print((3 * i * (i - 1) + 1), end=" ") i += 1 # Driver Code n = 4 # Function Call findNumbers(n) # This code is contributed by mohit kumar 29
Javascript
<script> // Javascript implementation to find // the N numbers such that their sum // is a perfect cube // Function to find the N // numbers such that their // sum is a perfect cube function findNumbers(n) { let i = 1; // Loop to find the Ith term // of the Centered Hexagonal number while (i <= n) { document.write((3 * i * (i - 1) + 1) + " "); i++; } } // Driver Code let n = 4; // Function Call findNumbers(n); // This code is contributed by Surbhi Tyagi. </script>
1 7 19 37
Análisis de rendimiento:
- Complejidad de tiempo: como en el enfoque anterior, estamos encontrando todos los números hexagonales centrados en N, por lo que tomará O (N) .
- Espacio auxiliar: como en el enfoque anterior, no se utiliza espacio adicional, por lo que el espacio auxiliar utilizado será O(1)