Dado un número N , comprueba si es Hexagonal o no. Si es así, imprima «Sí», de lo contrario, emita «No».
Ejemplos:
Entrada: N = 6
Salida: Sí
Explicación:
6 es el segundo número hexagonal.Entrada: N = 14
Salida: No
Explicación:
El segundo número hexagonal es 6 mientras que el tercer número hexagonal es 15. Por lo tanto, 14 no es un número hexagonal.
Enfoque: Para resolver el problema mencionado anteriormente, debemos tener en cuenta que el n-ésimo Número hexagonal viene dado por la fórmula: H(n) = n * (2n – 1) . La fórmula indica que el n-ésimo número hexagonal depende cuadráticamente de n. Por lo tanto, encuentra la raíz integral positiva de la ecuación N = H(n).
Por lo tanto, H(n) = n-ésimo número hexagonal y N es el Número dado. Por lo tanto resolver la siguiente ecuación:
Aquí, H(n) = N
=> n * (2n – 1) = N
=> 2 * n * n – n – N = 0
La raíz positiva de esta ecuación es:
n = (1 + sqrt(8 N + 1)) / 4
Después de obtener el valor de n, verifique si es un número entero o no, donde n es un número entero si n – piso (n) es 0.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program to check // if N is a Hexagonal Number #include <bits/stdc++.h> using namespace std; // Function to check // if number is hexagonal bool isHexagonal(int N) { float val = 8 * N + 1; float x = 1 + sqrt(val); // Calculate the value for n float n = (x) / 4; // Check if n - floor(n) // is equal to 0 if ((n - (int)n) == 0) return true; else return false; } // Driver code int main() { int N = 14; if (isHexagonal(N) == true) cout << "Yes" << endl; else cout << "No" << endl; return 0; }
Java
// Java program to check // if N is a hexagonal number import java.util.*; class GFG { // Function to check // if number is hexagonal static boolean isHexagonal(int N) { float val = 8 * N + 1; float x = 1 + (float)Math.sqrt(val); // Calculate the value for n float n = (x) / 4; // Check if n - floor(n) // is equal to 0 if ((n - (int)n) == 0) return true; else return false; } // Driver code public static void main(String[] args) { int N = 14; if (isHexagonal(N) == true) System.out.println("Yes"); else System.out.println("No"); } } // This code is contributed by offbeat
Python3
# Python3 program to check # if N is a hexagonal number from math import sqrt # Function to check # if number is hexagonal def isHexagonal(N): val = 8 * N + 1 x = 1 + sqrt(val) # Calculate the value for n n = x / 4 # Check if n - floor(n) # is equal to 0 if ((n - int(n)) == 0): return True else: return False # Driver code if __name__ == '__main__': N = 14 if (isHexagonal(N) == True): print("Yes") else: print("No") # This code is contributed by BhupendraSingh
C#
// C# program to check if // N is a hexagonal number using System; class GFG{ // Function to check // if number is hexagonal static bool isHexagonal(int N) { float val = 8 * N + 1; float x = 1 + (float)Math.Sqrt(val); // Calculate the value for n float n = (x) / 4; // Check if n - floor(n) // is equal to 0 if ((n - (int)n) == 0) { return true; } else { return false; } } // Driver code public static void Main(string[] args) { int N = 14; if (isHexagonal(N) == true) Console.Write("Yes"); else Console.Write("No"); } } // This code is contributed by rutvik_56
Javascript
<script> // Javascript program to check // if N is a hexagonal number // Function to check // if number is hexagonal function isHexagonal(N) { let val = 8 * N + 1; let x = 1 + Math.sqrt(val); // Calculate the value for n let n = (x) / 4; // Check if n - floor(n) // is equal to 0 if ((n - parseInt(n)) == 0) { return true; } else { return false; } } // Driver code let N = 14; if (isHexagonal(N) == true) { document.write("Yes" + "</br>"); } else { document.write("No"); } // This code is contributed by Ankita saini </script>
No
Complejidad de tiempo: O(1)