Given an integer N, the task is to check if N is a Hexadecagonal Number or not. If the number N is an Hexadecagonal Number then print “Yes” else print “No”.
Hexadecagonal Number is class of figurate number and a perfect squares. It has 16-sided polygon called Hexadecagon or Hexakaidecagon. The nth Hexadecagonal Number counts the sixteen number of dots and all others dots are surrounding to its successive layer.The first few Hexadecagonal Numbers are 1, 16, 45, 88, 145, 216…
Examples:
Input: N = 16
Output: Yes
Explanation:
Second hexadecagonal number is 16.Input: N = 30
Output: No
Approach:
1. The Kth term of the hexadecagonal number is given as
2. As we have to check that the given number can be expressed as a Hexadecagonal Number or not. This can be checked as:
=>
=>
3. If the value of K calculated using the above formula is an integer, then N is a Hexadecagonal Number.
4. Else N is not a Hexadecagonal Number.
Below is the implementation of the above approach:
C++
// C++ program for the above approach #include <bits/stdc++.h> using namespace std; // Function to check if N is a // hexadecagonal number bool ishexadecagonal( int N) { float n = (12 + sqrt (112 * N + 144)) / 28; // Condition to check if the // number is a hexadecagonal number return (n - ( int )n) == 0; } // Driver Code int main() { // Given Number int N = 16; // Function call if (ishexadecagonal(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 // hexadecagonal number public static boolean ishexadecagonal( int N) { double n = ( 12 + Math.sqrt( 112 * N + 144 )) / 28 ; // Condition to check if the // number is a hexadecagonal number return (n - ( int )n) == 0 ; } // Driver code public static void main(String[] args) { // Given number int N = 16 ; // Function call if (ishexadecagonal(N)) { System.out.println( "Yes" ); } else { System.out.println( "No" ); } } } // This code is contributed by divyeshrabadiya07 |
Python3
# Python3 program for the above approach from math import sqrt # Function to check if N is # a hexadecagonal number def ishexadecagonal(N): n = ( 12 + sqrt( 112 * N + 144 )) / 28 ; # Condition to check if the number # is a hexadecagonal number return (n - int (n)) = = 0 ; # Driver code if __name__ = = "__main__" : # Given number N = 16 ; # Function call if (ishexadecagonal(N)): print ( "Yes" ); else : print ( "No" ); # This code is contributed by AnkitRai01 |
C#
// C# program for the above approach using System; class GFG{ // Function to check if N is a // hexadecagonal number public static bool ishexadecagonal( int N) { double n = (12 + Math.Sqrt(112 * N + 144)) / 28; // Condition to check if the // number is a hexadecagonal number return (n - ( int )n) == 0; } // Driver code public static void Main( string [] args) { // Given number int N = 16; // Function call if (ishexadecagonal(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 // hexadecagonal number function ishexadecagonal( N) { let n = (12 + Math.sqrt(112 * N + 144)) / 28; // Condition to check if the // number is a hexadecagonal number return (n - parseInt(n)) == 0; } // Driver Code // Given Number let N = 16; // Function Call if (ishexadecagonal(N)) { document.write( "Yes" ); } else { document.write( "No" ); } // This code contributed by Rajput-Ji </script> |
Yes
Time Complexity: O(logN) because sqrt() function is being used
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!