Dado un número entero N , la tarea es verificar si N es un número de Chiliagon o no. Si el número N es un número de Chiliagon , escriba «Sí», de lo contrario, escriba «No».
El número de Chiliagon es una clase de número figurado. Tiene un polígono de 1000 lados llamado Chiliágono. El N-ésimo número de quiliágono cuenta el número 1000 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 de Chiliagon son 1, 1000, 2997, 5992, …
Ejemplos:
Entrada: N = 1000
Salida: Sí
Explicación:
El segundo número de chiliágono es 1000
Entrada: 35
Salida: No
Acercarse:
- El K -ésimo término del Número de Chiliágono se da como
- Como tenemos que comprobar que el número dado se puede expresar como un número de Chiliagon o no. Esto se puede comprobar de la siguiente manera:
=>
=>
3.Si el valor de K calculado con la fórmula anterior es un número entero, entonces N es un número de Chiliágono.
4. De lo contrario, N no es un número de Chiliágono.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ for the above approach #include <bits/stdc++.h> using namespace std; // Function to check that if N is // Chiliagon Number or not bool is_Chiliagon(int N) { float n = (996 + sqrt(7984 * N + 992016)) / 1996; // Condition to check if N is a // Chiliagon Number return (n - (int)n) == 0; } // Driver Code int main() { // Given Number int N = 1000; // Function call if (is_Chiliagon(N)) { cout << "Yes"; } else { cout << "No"; } return 0; }
Java
// Java program for the above approach class GFG{ // Function to check that if N is // Chiliagon Number or not static boolean is_Chiliagon(int N) { float n = (float)(996 + Math.sqrt(7984 * N + 992016)) / 1996; // Condition to check if N is a // Chiliagon Number return (n - (int) n) == 0; } // Driver Code public static void main(String s[]) { // Given Number int N = 1000; // Function call if (is_Chiliagon(N)) { System.out.print("Yes"); } else { System.out.print("No"); } } } // This code is contributed by rutvik_56
Python3
# Python3 for the above approach import math; # Function to check that if N is # Chiliagon Number or not def is_Chiliagon(N): n = (996 + math.sqrt(7984 * N + 992016)) // 1996; # Condition to check if N is a # Chiliagon Number return (n - int(n)) == 0; # Driver Code # Given Number N = 1000; # Function call if (is_Chiliagon(N)): print("Yes"); else: print("No"); # This code is contributed by Code_Mech
C#
// C# program for the above approach using System; class GFG{ // Function to check that if N is // Chiliagon Number or not static bool is_Chiliagon(int N) { float n = (float)(996 + Math.Sqrt(7984 * N + 992016)) / 1996; // Condition to check if N is a // Chiliagon Number return (n - (int) n) == 0; } // Driver Code public static void Main() { // Given Number int N = 1000; // Function call if (is_Chiliagon(N)) { Console.Write("Yes"); } else { Console.Write("No"); } } } // This code is contributed by Code_Mech
Javascript
<script> // Javascript for the above approach // Function to check that if N is // Chiliagon Number or not function is_Chiliagon(N) { let n = (996 + Math.sqrt(7984 * N + 992016)) / 1996; // Condition to check if N is a // Chiliagon Number return (n - Math.floor(n)) == 0; } // Driver Code // Given Number let N = 1000; // Function call if (is_Chiliagon(N)) { document.write("Yes"); } else { document.write("No"); } // This code is contributed by Mayank Tyagi </script>
Yes
Complejidad de Tiempo: O(N 1/2 )
Espacio Auxiliar: O(1)