给定一个整数N ,任务是检查它是否是一个 Icositrigonal 数。
Icositrigonal number is a class of figurate number. It has 23 – sided polygon called Icositrigon. The N-th Icositrigonal number count’s the 23 number of dots and all others dots are surrounding with a common sharing corner and make a pattern. The first few Icositrigonol numbers are 1, 23, 66, 130, 215, 321, 448 …
例子:
Input: N = 23
Output: Yes
Explanation:
Second icositrigonal number is 23.
Input: N = 30
Output: No
方法:
- 第i个的icositrigonal数项K被给定为
- 因为我们必须检查给定的数字是否可以表示为正弦三角数。这可以检查如下 –
=>
=>
- 最后,检查使用这个公式计算的值是一个整数,这意味着 N 是一个正弦三角数。
下面是上述方法的实现:
C++
// C++ implementation to check that
// a number is a icositrigonal number or not
#include
using namespace std;
// Function to check that the
// number is a icositrigonal number
bool isicositrigonal(int N)
{
float n
= (19 + sqrt(168 * N + 361))
/ 42;
// Condition to check if the
// number is a icositrigonal number
return (n - (int)n) == 0;
}
// Driver Code
int main()
{
int i = 23;
// Function call
if (isicositrigonal(i)) {
cout << "Yes";
}
else {
cout << "No";
}
return 0;
}
Java
// Java implementation to check that
// a number is a icositrigonal number or not
import java.util.*;
class GFG{
// Function to check that the
// number is a icositrigonal number
static boolean isicositrigonal(int N)
{
float n = (float)(19 + Math.sqrt(168 * N + 361)) / 42;
// Condition to check if the
// number is a icositrigonal number
return (n - (int)n) == 0;
}
// Driver Code
public static void main(String args[])
{
int i = 23;
// Function call
if (isicositrigonal(i))
{
System.out.print("Yes");
}
else
{
System.out.print("No");
}
}
}
// This code is contributed by Akanksha_Rai
Python3
# Python3 implementation to check that a
# number is a icositrigonal number or not
import math
# Function to check that the number
# is a icositrigonal number
def isicositrigonal(N):
n = (19 + math.sqrt(168 * N + 361)) / 42
# Condition to check if the number
# is a icositrigonal number
return (n - int(n)) == 0
# Driver Code
i = 23
# Function call
if (isicositrigonal(i)):
print("Yes")
else:
print("No")
# This code is contributed by divyamohan123
C#
// C# implementation to check that
// a number is a icositrigonal number or not
using System;
class GFG{
// Function to check that the
// number is a icositrigonal number
static bool isicositrigonal(int N)
{
float n = (float)(19 + Math.Sqrt(168 * N + 361)) / 42;
// Condition to check if the
// number is a icositrigonal number
return (n - (int)n) == 0;
}
// Driver Code
public static void Main()
{
int i = 23;
// Function call
if (isicositrigonal(i))
{
Console.Write("Yes");
}
else
{
Console.Write("No");
}
}
}
// This code is contributed by Nidhi_Biet
Javascript
输出:
Yes
时间复杂度: O(1)
辅助空间: O(1)