Program to check if N is a Hexagonal Number or not
Given a number N, check if it is Hexagonal or not. If it is then print “Yes” otherwise output “No”.
Examples:
Input: N = 6
Output: Yes
Explanation:
6 is the second hexagonal number.Input: N = 14
Output: No
Explanation:
The second hexagonal number is 6 while the third hexagonal number is 15. Hence 14 is not a hexagonal number.
Approach: To solve the problem mentioned above we have to note that the nth hexagonal Number is given by the formula: H(n) = n * (2n – 1). The formula indicates that the n-th hexagonal number depends quadratically on n. Therefore, find the positive integral root of N = H(n) equation.
Therefore, H(n) = nth hexagonal number and N is the given Number. Hence solve the following equation:
Here, H(n) = N
=> n * (2n – 1) = N
=> 2 * n * n – n – N = 0
The positive root of this equation is:
n = (1 + sqrt(8 N + 1)) / 4
After obtaining the value for n, check if it is an integer or not where n is an integer if n – floor(n) is 0.
Below is the implementation of the above approach:
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
Time Complexity: O(log(N)), for calculation square root.
Auxiliary Space: O(1)
Please Login to comment...