Dado un número entero N , la tarea es verificar si es un número de estrella o no.
El número de estrella es un número figurado centrado que representa un hexagrama centrado (estrella de seis puntas) similar al juego de damas chino. Los primeros números de estrellas son 1, 13, 37, 73…
Ejemplos:
Entrada: N = 13
Salida: Sí
Explicación:
El segundo número de estrella es 13.
Entrada: 14
Salida: No
Explicación:
El segundo número de estrella es 13, donde 37 es el tercero.
Por lo tanto, 14 no es un número de estrella.
Acercarse:
- El K -ésimo término del número de estrella se da como
- Como tenemos que comprobar que el número dado se puede expresar como un número de estrella o no. Esto se puede comprobar de la siguiente manera:
=>
=>
=>
- Finalmente, verifique que el valor de calculado usando estas fórmulas sea un número entero, lo que significa que N es un número de estrella.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation to check that // a number is a star number or not #include <bits/stdc++.h> using namespace std; // Function to check that the // number is a star number bool isStar(int N) { float n = (6 + sqrt(24 * N + 12)) / 6; // Condition to check if the // number is a star number return (n - (int)n) == 0; } // Driver Code int main() { int i = 13; // Function call if (isStar(i)) { cout << "Yes"; } else { cout << "No"; } return 0; }
Java
// Java implementation to check that // a number is a star number or not import java.io.*; import java.util.*; class GFG{ // Function to check that the // number is a star number static boolean isStar(int N) { double n = (6 + Math.sqrt(24 * N + 12)) / 6; // Condition to check if the // number is a star number return (n - (int)n) == 0; } // Driver code public static void main(String[] args) { int i = 13; // Function call if (isStar(i)) { System.out.println("Yes"); } else { System.out.println("No"); } } } // This code is contributed by coder001
Python3
# Python3 implementation to check that # a number is a star number or not import math # Function to check that the # number is a star number def isStar(N): n = (math.sqrt(24 * N + 12) + 6) / 6 # Condition to check if the # number is a star number return (n - int(n)) == 0 # Driver Code i = 13 # Function call if isStar(i): print("Yes") else: print("No") # This code is contributed by ishayadav181
C#
// C# implementation to check that // a number is a star number or not using System; class GFG{ // Function to check that the // number is a star number static bool isStar(int N) { double n = (6 + Math.Sqrt(24 * N + 12)) / 6; // Condition to check if the // number is a star number return (n - (int)n) == 0; } // Driver code public static void Main() { int i = 13; // Function call if (isStar(i)) { Console.WriteLine("Yes"); } else { Console.WriteLine("No"); } } } // This code is contributed by Code_Mech
Javascript
<script> // Javascript implementation to check that // a number is a star number or not // Function to check that the // number is a star number function isStar(N) { let n = (6 + Math.sqrt(24 * N + 12)) / 6; // Condition to check if the // number is a star number return (n - parseInt(n)) == 0; } // Driver Code let i = 13; // Function call if (isStar(i)) { document.write("Yes"); } else { document.write("No"); } // This code is contributed by rishavmahato348. </script>
Producción:
Yes
Complejidad de tiempo: O (n 1/2 )
Espacio Auxiliar: O(1)