Dado un número entero N , la tarea es verificar si es un número Icosihenagonal o no.
El número icosihenagonal es una clase de número figurado. Tiene un polígono de 21 lados llamado Icosihenagon. El n-ésimo número Icosihenagonal cuenta el número 21 de puntos y todos los demás puntos están rodeados por una esquina compartida común y forman un patrón. Los primeros números icosihenagonales son 1, 21, 60, 118, 195, 291, 406…
Ejemplos:
Entrada: N = 21
Salida: Sí
Explicación:
El segundo número icosihexagonal es 21.
Entrada: N = 30
Salida: No
Acercarse:
- El K -ésimo término del número icosihenagonal se da como
- Como tenemos que comprobar que el número dado se puede expresar como un número icosihenagonal 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 icosihenagonal.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation to check that // a number is icosihenagonal number or not #include <bits/stdc++.h> using namespace std; // Function to check that the // number is a icosihenagonal number bool isicosihenagonal(int N) { float n = (17 + sqrt(152 * N + 289)) / 38; // Condition to check if the // number is a icosihenagonal number return (n - (int)n) == 0; } // Driver Code int main() { int i = 21; // Function call if (isicosihenagonal(i)) { cout << "Yes"; } else { cout << "No"; } return 0; }
Java
// Java implementation to check that a // number is icosihenagonal number or not class GFG{ // Function to check that the number // is a icosihenagonal number static boolean isicosihenagonal(int N) { float n = (float) ((17 + Math.sqrt(152 * N + 289)) / 38); // Condition to check if the number // is a icosihenagonal number return (n - (int)n) == 0; } // Driver Code public static void main(String[] args) { int i = 21; // Function call if (isicosihenagonal(i)) { System.out.print("Yes"); } else { System.out.print("No"); } } } // This code is contributed by 29AjayKumar
Python3
# Python3 implementation to check that # a number is icosihenagonal number or not import math # Function to check that the number # is a icosihenagonal number def isicosihenagonal(N): n = (17 + math.sqrt(152 * N + 289)) / 38 # Condition to check if the number # is a icosihenagonal number return (n - int(n)) == 0 # Driver Code i = 21 # Function call if isicosihenagonal(i): print("Yes") else : print("No") # This code is contributed by divyamohan123
C#
// C# implementation to check that a // number is icosihenagonal number or not using System; class GFG{ // Function to check that the number // is a icosihenagonal number static bool isicosihenagonal(int N) { float n = (float)((17 + Math.Sqrt(152 * N + 289)) / 38); // Condition to check if the number // is a icosihenagonal number return (n - (int)n) == 0; } // Driver Code public static void Main() { int i = 21; // Function call if (isicosihenagonal(i)) { Console.Write("Yes"); } else { Console.Write("No"); } } } // This code is contributed by Code_Mech
Javascript
<script> // JavaScript implementation to check that // a number is icosihenagonal number or not // Function to check that the // number is a icosihenagonal number function isicosihenagonal(N) { var n = (17 + Math.sqrt(152 * N + 289)) / 38; // Condition to check if the // number is a icosihenagonal number return (n - parseInt(n)) == 0; } // Driver Code var i = 21; // Function call if (isicosihenagonal(i)) { document.write("Yes"); } else { document.write("No"); } </script>
Producción:
Yes
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)