Program to check if N is a Octadecagon number
Last Updated :
22 Dec, 2022
Given a number N, the task is to check if N is an Octadecagon Number or not. If the number N is an Octadecagon Number then print “Yes” else print “No”.
Octadecagon Number is a 18-sided polygon. The first few Octadecagon Numbers are 1, 18, 51, 100, 165, 246, 343, …
Examples:
Input: N = 18
Output: Yes
Explanation:
Second Octadecagon number is 18.
Input: N = 30
Output: No
Approach:
1. The Kth term of the Octadecagon number is given as
2. As we have to check whether the given number can be expressed as an Octadecagon 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 an Octadecagon Number.
4. Else N is not an Octadecagon Number.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
using namespace std;
bool isOctadecagon( int N)
{
float n
= (14 + sqrt (128 * N + 196))
/ 32;
return (n - ( int )n) == 0;
}
int main()
{
int N = 18;
if (isOctadecagon(N)) {
cout << "Yes" ;
}
else {
cout << "No" ;
}
return 0;
}
|
Java
import java.lang.Math;
class GFG{
public static boolean isOctadecagon( int N)
{
double n = ( 14 + Math.sqrt( 128 * N +
196 )) / 32 ;
return (n - ( int )n) == 0 ;
}
public static void main(String[] args)
{
int N = 18 ;
if (isOctadecagon(N))
{
System.out.println( "Yes" );
}
else
{
System.out.println( "No" );
}
}
}
|
Python3
import math
def isOctadecagon(N):
n = ( 14 + math.sqrt( 128 * N + 196 )) / / 32
return ((n - int (n)) = = 0 )
if __name__ = = '__main__' :
N = 18
if isOctadecagon(N):
print ( 'Yes' )
else :
print ( 'No' )
|
C#
using System;
class GFG{
public static bool isOctadecagon( int N)
{
double n = (14 + Math.Sqrt(128 * N +
196)) / 32;
return (n - ( int )n) == 0;
}
public static void Main(String[] args)
{
int N = 18;
if (isOctadecagon(N))
{
Console.WriteLine( "Yes" );
}
else
{
Console.WriteLine( "No" );
}
}
}
|
Javascript
<script>
function isOctadecagon( N)
{
let n
= (14 + Math.sqrt(128 * N + 196))
/ 32;
return (n - parseInt(n)) == 0;
}
let N = 18;
if (isOctadecagon(N)) {
document.write( "Yes" );
}
else {
document.write( "No" );
}
</script>
|
Time Complexity: O(log N) as sqrt function is being used
Auxiliary Space: O(1)
Share your thoughts in the comments
Please Login to comment...