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++ program to check whether a // number is an icosikaioctagonal // number or not #include <bits/stdc++.h> using namespace std;
// Function to check whether a number // is an icosikaioctagonal number or not bool 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 code int main()
{ int i = 28;
if (isicosikaioctagonal(i)) {
cout << "Yes" ;
}
else {
cout << "No" ;
}
return 0;
} |
// Java program to check whether a // number is an icosikaioctagonal // number or not class GFG{
// Function to check whether a // number is an icosikaioctagonal // number or not static 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 program to check whether a # number is an icosikaioctagonal # number or not import math
# Function to check whether a number # is an icosikaioctagonal number or not def 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 code i = 28 ;
if (isicosikaioctagonal(i)):
print ( "Yes" );
else :
print ( "No" );
# This code is contributed by Code_Mech |
// C# program to check whether a // number is an icosikaioctagonal // number or not using System;
class GFG{
// Function to check whether a // number is an icosikaioctagonal // number or not static 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 |
<script> // Javascript program to check whether a // number is an icosikaioctagonal // number or not // Function to check whether a number // is an icosikaioctagonal number or not function isicosikaioctagonal(N)
{ let n
= (24 + Math.sqrt(208 * N + 576))
/ 52;
// Condition to check if the
// number is an
// icosikaioctagonal number
return (n - parseInt(n)) == 0;
} // Driver code let i = 28; if (isicosikaioctagonal(i)) {
document.write( "Yes" );
} else {
document.write( "No" );
} // This code is contributed by rishavmahato348. </script> |
Output:
Yes
Time Complexity: O(logN) for given N, as it is using inbuilt sqrt function
Auxiliary Space: O(1)