Related Articles

# Program to check if N is a Icosihenagonal number

• Last Updated : 23 Jun, 2021

Given an integer N, the task is to check if it is a Icosihenagonal number or not.

Icosihenagonal number is class of figurate number. It has 21 â€“ sided polygon called Icosihenagon. The n-th Icosihenagonal number counts the 21 number of dots and all others dots are surrounding with a common sharing corner and make a pattern. The first few Icosihenagonal numbers are 1, 21, 60, 118, 195, 291, 406…

Examples:

Input: N = 21
Output: Yes
Explanation:
Second icosihenagonal number is 21.
Input: N = 30
Output: No

Approach:

1. The Kth term of the icosihenagonal number is given as

2. As we have to check that the given number can be expressed as a icosihenagonal number or not. This can be checked as follows –

=>
=>

1.
2. Finally, check the value of computed using this formulae is an integer, which means that N is a icosihenagonal number.

Below is the implementation of the above approach:

## C++

 // C++ implementation to check that// a number is icosihenagonal number or not #include  using namespace std; // Function to check that the// number is a icosihenagonal numberbool isicosihenagonal(int N){    float n        = (17 + sqrt(152 * N + 289))          / 38;     // Condition to check if the    // number is a icosihenagonal number    return (n - (int)n) == 0;} // Driver Codeint main(){    int i = 21;     // Function call    if (isicosihenagonal(i)) {        cout << "Yes";    }    else {        cout << "No";    }    return 0;}

## Java

 // Java implementation to check that a// number is icosihenagonal number or notclass GFG{ // Function to check that the number// is a icosihenagonal numberstatic boolean isicosihenagonal(int N){    float n = (float) ((17 + Math.sqrt(152 * N +                                       289)) / 38);     // Condition to check if the number    // is a icosihenagonal number    return (n - (int)n) == 0;} // Driver Codepublic static void main(String[] args){    int i = 21;     // Function call    if (isicosihenagonal(i))    {        System.out.print("Yes");    }    else    {        System.out.print("No");    }}} // This code is contributed by 29AjayKumar

## Python3

 # Python3 implementation to check that# a number is icosihenagonal number or notimport math # Function to check that the number# is a icosihenagonal numberdef isicosihenagonal(N):     n = (17 + math.sqrt(152 * N + 289)) / 38     # Condition to check if the number    # is a icosihenagonal number    return (n - int(n)) == 0 # Driver Codei = 21 # Function callif isicosihenagonal(i):    print("Yes")else :    print("No")     # This code is contributed by divyamohan123

## C#

 // C# implementation to check that a// number is icosihenagonal number or notusing System; class GFG{ // Function to check that the number// is a icosihenagonal numberstatic bool isicosihenagonal(int N){    float n = (float)((17 + Math.Sqrt(152 * N +                                      289)) / 38);     // Condition to check if the number    // is a icosihenagonal number    return (n - (int)n) == 0;} // Driver Codepublic static void Main(){    int i = 21;     // Function call    if (isicosihenagonal(i))    {        Console.Write("Yes");    }    else    {        Console.Write("No");    }}} // This code is contributed by Code_Mech

## Javascript

 
Output:
Yes

Time Complexity: O(1)

Auxiliary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up