Program to check if N is a Hexadecagonal Number
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++
#include <bits/stdc++.h>
using namespace std;
bool ishexadecagonal( int N)
{
float n
= (12 + sqrt (112 * N + 144))
/ 28;
return (n - ( int )n) == 0;
}
int main()
{
int N = 16;
if (ishexadecagonal(N)) {
cout << "Yes" ;
}
else {
cout << "No" ;
}
return 0;
}
|
Java
import java.lang.Math;
class GFG{
public static boolean ishexadecagonal( int N)
{
double n = ( 12 + Math.sqrt( 112 * N +
144 )) / 28 ;
return (n - ( int )n) == 0 ;
}
public static void main(String[] args)
{
int N = 16 ;
if (ishexadecagonal(N))
{
System.out.println( "Yes" );
}
else
{
System.out.println( "No" );
}
}
}
|
Python3
from math import sqrt
def ishexadecagonal(N):
n = ( 12 + sqrt( 112 * N + 144 )) / 28 ;
return (n - int (n)) = = 0 ;
if __name__ = = "__main__" :
N = 16 ;
if (ishexadecagonal(N)):
print ( "Yes" );
else :
print ( "No" );
|
C#
using System;
class GFG{
public static bool ishexadecagonal( int N)
{
double n = (12 + Math.Sqrt(112 * N +
144)) / 28;
return (n - ( int )n) == 0;
}
public static void Main( string [] args)
{
int N = 16;
if (ishexadecagonal(N))
{
Console.Write( "Yes" );
}
else
{
Console.Write( "No" );
}
}
}
|
Javascript
<script>
function ishexadecagonal( N)
{
let n
= (12 + Math.sqrt(112 * N + 144))
/ 28;
return (n - parseInt(n)) == 0;
}
let N = 16;
if (ishexadecagonal(N)) {
document.write( "Yes" );
}
else {
document.write( "No" );
}
</script>
|
Time Complexity: O(logN) because sqrt() function is being used
Auxiliary Space: O(1)
Last Updated :
01 Dec, 2022
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...