# Program to check if N is an Icosikaioctagonal Number

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

An icosikaioctagonal number is class of figurate number. It has 28 â€“ sided polygon called icosikaioctagon. The N-th icosikaioctagonal number countâ€™s the 28 number of dots and all other dots are surrounding with a common sharing corner and make a pattern. The first few icosikaioctagonol numbers are 1, 28, 81, 160 …

Examples:

Input: N = 28
Output: Yes
Explanation:
Second icosikaioctagonal number is 28.

Input: 30
Output: No

Approach:

1. The Kth term of the icosikaioctagonal number is given as:

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

=>
=>

3. Finally, check the value computed using these formulae is an integer, which means that N is an icosikaioctagonal number.

Below is the implementation of the above approach:

## C++

 // C++ program to check whether a// number is an icosikaioctagonal // number or not #include  using namespace std; // Function to check whether a number// is an icosikaioctagonal number or notbool isicosikaioctagonal(int N){    float n        = (24 + sqrt(208 * N + 576))          / 52;     // Condition to check if the    // number is an     // icosikaioctagonal number    return (n - (int)n) == 0;} // Driver codeint main(){    int i = 28;     if (isicosikaioctagonal(i)) {        cout << "Yes";    }    else {        cout << "No";    }    return 0;}

## Java

 // Java program to check whether a// number is an icosikaioctagonal // number or notclass GFG{  // Function to check whether a// number is an icosikaioctagonal // number or notstatic boolean isicosikaioctagonal(int N) {     float n = (float) ((24 + Math.sqrt(208 * N +                                        576)) / 52);         // Condition to check whether a    // number is an icosikaioctagonal     // number or not    return (n - (int)n) == 0; }  // Driver Code public static void main(String[] args) {          // Given number     int N = 28;          // Function call     if (isicosikaioctagonal(N))     {         System.out.print("Yes");     }     else    {         System.out.print("No");     } } }  // This code is contributed by shubham

## Python3

 # Python3 program to check whether a# number is an icosikaioctagonal # number or notimport math # Function to check whether a number# is an icosikaioctagonal number or notdef isicosikaioctagonal(N):     n = (24 + math.sqrt(208 * N +                        576)) // 52;     # Condition to check if the    # number is an     # icosikaioctagonal number    return (n - int(n)) == 0; # Driver codei = 28; if (isicosikaioctagonal(i)):    print("Yes");else:    print("No"); # This code is contributed by Code_Mech

## C#

 // C# program to check whether a// number is an icosikaioctagonal // number or notusing System;class GFG{  // Function to check whether a// number is an icosikaioctagonal // number or notstatic bool isicosikaioctagonal(int N) {     float n = (float)((24 + Math.Sqrt(208 * N +                                       576)) / 52);         // Condition to check whether a    // number is an icosikaioctagonal     // number or not    return (n - (int)n) == 0; }  // Driver Code public static void Main() {          // Given number     int N = 28;          // Function call     if (isicosikaioctagonal(N))     {         Console.Write("Yes");     }     else    {         Console.Write("No");     } } }  // This code is contributed by Code_Mech

## Javascript

 

Output:
Yes

Time Complexity: O(logN) for given N, as it is using inbuilt sqrt function
Auxiliary Space: O(1)

Previous
Next