Dado un número entero N , la tarea es comprobar si es un número icositrigonal o no.
El número icositrigonal es una clase de número figurado. Tiene un polígono de 23 lados llamado Icositrigón. El N-ésimo número icositrigonal cuenta el número 23 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 icositrigonol son 1, 23, 66, 130, 215, 321, 448…
Ejemplos:
Entrada: N = 23
Salida: Sí
Explicación:
El segundo número icositrigonal es 23.
Entrada: N = 30
Salida: No
Acercarse:
- El K -ésimo término del número icositrigonal se da como
- Como tenemos que comprobar que el número dado se puede expresar como un número icositrigonal 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 icositrigonal.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation to check that // a number is a icositrigonal number or not #include <bits/stdc++.h> using namespace std; // Function to check that the // number is a icositrigonal number bool isicositrigonal(int N) { float n = (19 + sqrt(168 * N + 361)) / 42; // Condition to check if the // number is a icositrigonal number return (n - (int)n) == 0; } // Driver Code int main() { int i = 23; // Function call if (isicositrigonal(i)) { cout << "Yes"; } else { cout << "No"; } return 0; }
Java
// Java implementation to check that // a number is a icositrigonal number or not import java.util.*; class GFG{ // Function to check that the // number is a icositrigonal number static boolean isicositrigonal(int N) { float n = (float)(19 + Math.sqrt(168 * N + 361)) / 42; // Condition to check if the // number is a icositrigonal number return (n - (int)n) == 0; } // Driver Code public static void main(String args[]) { int i = 23; // Function call if (isicositrigonal(i)) { System.out.print("Yes"); } else { System.out.print("No"); } } } // This code is contributed by Akanksha_Rai
Python3
# Python3 implementation to check that a # number is a icositrigonal number or not import math # Function to check that the number # is a icositrigonal number def isicositrigonal(N): n = (19 + math.sqrt(168 * N + 361)) / 42 # Condition to check if the number # is a icositrigonal number return (n - int(n)) == 0 # Driver Code i = 23 # Function call if (isicositrigonal(i)): print("Yes") else: print("No") # This code is contributed by divyamohan123
C#
// C# implementation to check that // a number is a icositrigonal number or not using System; class GFG{ // Function to check that the // number is a icositrigonal number static bool isicositrigonal(int N) { float n = (float)(19 + Math.Sqrt(168 * N + 361)) / 42; // Condition to check if the // number is a icositrigonal number return (n - (int)n) == 0; } // Driver Code public static void Main() { int i = 23; // Function call if (isicositrigonal(i)) { Console.Write("Yes"); } else { Console.Write("No"); } } } // This code is contributed by Nidhi_Biet
Javascript
<script> // JavaScript implementation to check that // a number is a icositrigonal number or not // Function to check that the // number is a icositrigonal number function isicositrigonal(N) { var n = (19 + Math.sqrt(168 * N + 361)) / 42; // Condition to check if the // number is a icositrigonal number return (n - parseInt(n)) == 0; } // Driver Code var i = 23; // Function call if (isicositrigonal(i)) { document.write("Yes"); } else { document.write("No"); } </script>
Producción:
Yes
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)