Dado un número N , la tarea es verificar si N es un Número Nonagonal o no. Si el número N es un número nogonal , escriba «Sí» , de lo contrario, escriba «No» .
El número nonagonal es un número figurado que extiende el concepto de números triangulares y cuadrados al nonágono. Específicamente, los enésimos números nonagonales cuentan la cantidad de puntos en un patrón de n nonágonos anidados ( polígono de 9 lados ), todos compartiendo una esquina común, donde el enésimo nonágono en el patrón tiene lados hechos de i puntos separados una unidad entre sí . Los primeros Números Nonagonales son 1, 9, 24, 46, 75, 111, 154, …
Ejemplos:
Entrada: N = 9
Salida: Sí
Explicación:
El segundo número nonagonal es 9.Entrada: N = 20
Salida: No
Acercarse:
1. El K -ésimo término del número no ogonal se da como
2. Como tenemos que comprobar que el número dado se puede expresar como un Número Nonagonal o no. Esto se puede comprobar como:
=>
=>
3. Si el valor de K calculado con la fórmula anterior es un número entero, entonces N es un número nogonal.
4. Si no, N no es un Número Nonagonal.
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 // is a Nonagonal Number bool isnonagonal(int N) { float n = (5 + sqrt(56 * N + 25)) / 14; // Condition to check if the // number is a nonagonal number return (n - (int)n) == 0; } // Driver Code int main() { // Given Number int N = 9; // Function call if (isnonagonal(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 // nonagonal number public static boolean isnonagonal(int N) { double n = (5 + Math.sqrt(56 * N + 25)) / 14; // Condition to check if the // number is a nonagonal number return (n - (int)n) == 0; } // Driver code public static void main(String[] args) { // Given number int N = 9; // Function call if (isnonagonal(N)) { System.out.println("Yes"); } else { System.out.println("No"); } } } // This code is contributed by divyeshrabadiya07
Python3
# Python3 program for the above approach # Function to check if N is a # nonagonal number def isnonagonal(N): n = (5 + pow((56 * N + 25), 1 / 2)) / 14; # Condition to check if the # number is a nonagonal number return (n - int(n)) == 0; # Driver code if __name__ == '__main__': # Given number N = 9; # Function call if (isnonagonal(N)): print("Yes"); else: print("No"); # This code is contributed by Rajput-Ji
C#
// C# program for the above approach using System; class GFG{ // Function to check if N is a // nonagonal number public static bool isnonagonal(int N) { double n = (5 + Math.Sqrt(56 * N + 25)) / 14; // Condition to check if the // number is a nonagonal number return (n - (int)n) == 0; } // Driver code public static void Main(string[] args) { // Given number int N = 9; // Function call if (isnonagonal(N)) { Console.Write("Yes"); } else { Console.Write("No"); } } } // This code is contributed by rutvik_56
Javascript
<script> // Javascript program for the above approach // Function to check if N is a // is a Nonagonal Number function isnonagonal(N) { let n = (5 + Math.sqrt(56 * N + 25)) / 14; // Condition to check if the // number is a nonagonal number return (n - parseInt(n)) == 0; } // Driver Code // Given Number let N = 9; // Function call if (isnonagonal(N)) { document.write("Yes"); } else { document.write("No"); } // This code is contributed by subhammahato348. </script>
Yes
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)