给定整数N ,任务是检查它是否为二十碳八角形数。
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 …
例子:
Input: N = 28
Output: Yes
Explanation:
Second icosikaioctagonal number is 28.
Input: 30
Output: No
方法:
1.二十烷八角形数的第K个项为:
2.由于我们必须检查给定的数字是否可以表示为二十烷八角形数字。可以检查如下–
=>
=>
3.最后,检查使用这些公式计算出的值是整数,这意味着N是一个二十烷八角形数。
下面是上述方法的实现:
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 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
// 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
# 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#
// 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
Javascript
输出:
Yes
时间复杂度: O(1)
辅助空间: O(1)