Dado un número entero N , la tarea es verificar si N es un número endecagonal o no. Si el número N es un número endecagonal, escriba «Sí» , de lo contrario, escriba «No» .
El número endecagonal es un número figurado que extiende el concepto de números triangulares y cuadrados al decágono ( polígono de 11 lados ). El enésimo número endecágono cuenta el número de puntos en un patrón de n decágonos anidados, todos compartiendo una esquina común, donde el enésimo endecágono en el patrón tiene lados formados por i puntos separados una unidad entre sí. Los primeros números endecagonales son 1, 11, 30, 58, 95, 141…
Ejemplos:
Entrada: N = 11
Salida: Sí
Explicación:
El segundo número endecagonal es 11.
Entrada: N = 40
Salida: No
Acercarse:
- El K -ésimo término del número endecagonal se da como
- Como tenemos que comprobar que el número dado se puede expresar como un número endecagonal o no. Esto se puede comprobar como:
=>
=>
- Si el valor de K calculado con la fórmula anterior es un número entero, entonces N es un número endecagonal.
- Si no, N no es un número endecagonal .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to check if N is a // Hendecagonal Number bool ishendecagonal(int N) { float n = (7 + sqrt(72 * N + 49)) / 18; // Condition to check if the // number is a hendecagonal number return (n - (int)n) == 0; } // Driver Code int main() { // Given Number int N = 11; // Function call if (ishendecagonal(N)) { cout << "Yes"; } else { cout << "No"; } return 0; }
Java
// Java program for the above approach import java.lang.Math; class GFG{ // Function to check if N is a // hendecagonal number public static boolean ishendecagonal(int N) { double n = (7 + Math.sqrt(72 * N + 49)) / 18; // Condition to check if the // number is a hendecagonal number return (n - (int)n) == 0; } // Driver code public static void main(String[] args) { // Given number int N = 11; // Function call if (ishendecagonal(N)) { System.out.println("Yes"); } else { System.out.println("No"); } } } // This code is contributed by divyeshrabadiya07
Python3
# Python3 program for the above approach import math # Function to check if N is a # Hendecagonal Number def ishendecagonal(N): n = (7 + math.sqrt(72 * N + 49))// 18; # Condition to check if the # number is a hendecagonal number return (n - int(n)) == 0; # Driver Code # Given Number N = 11; # Function call if (ishendecagonal(N)): print("Yes"); else: print("No"); # This code is contributed by Nidhi_biet
C#
// C# program for the above approach using System; class GFG{ // Function to check if N is a // hendecagonal number public static bool ishendecagonal(int N) { double n = (7 + Math.Sqrt(72 * N + 49)) / 18; // Condition to check if the // number is a hendecagonal number return (n - (int)n) == 0; } // Driver code public static void Main(string[] args) { // Given number int N = 11; // Function call if (ishendecagonal(N)) { Console.Write("Yes"); } else { Console.Write("No\n"); } } } // This code is contributed by rutvik_56
Javascript
<script> // javascript program for the above approach // Function to check if N is a // Hendecagonal Number function ishendecagonal( N) { let n = (7 + Math.sqrt(72 * N + 49)) / 18; // Condition to check if the // number is a hendecagonal number return (n - parseInt(n)) == 0; } // Driver Code // Given Number let N = 11; // Function Call if (ishendecagonal(N)) { document.write( "Yes"); } else { document.write( "No"); } // This code contributed by gauravrajput1 </script>
Yes
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)