# 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 ``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

 ``

Output:
`No`

Time Complexity: O(log(N)), for calculation square root.
Auxiliary Space: O(1)

Previous
Next