给定正整数N,请检查它是否为Quartan素数。如果是Quartan素数,则打印“是”,否则打印“否”。
Quartan素数:形式为x 4 + y 4的素数(其中x> 0,y> 0且x和y是整数)是Quartan素数。
Quartan Prime的范围是1 – 100:
2, 17, 97
例子:
Input : 17
Output : Yes
Explanation : 17 is a prime number and can be
expressed in the form of:
x4 + y4 as ( 14 + 24 )
Input : 31
Output : No
Explanation: 31 is prime number but can not be
expressed in the form of x4 + y4.
一个简单的解决方案是检查给定的数字是否为质数,然后检查其是否可以x 4 + y 4的形式表示。
一个有效的解决方案基于以下事实:每个Quartan Prime也可以以16 * n + 1的形式表示。因此,我们可以检查数字是否为质数,是否可以以16 * n +1的形式表示。如果是,则该数字为Quartan Prime,否则为。
下面是上述方法的实现
C++
// CPP program to check if a number is
// Quartan Prime or not
#include
using namespace std;
// Function to check if a number
// is prime or not
bool isPrime(int n)
{
// Corner cases
if (n <= 1)
return false;
if (n <= 3)
return true;
// This is checked so that we can skip
// middle five numbers in below loop
if (n % 2 == 0 || n % 3 == 0)
return false;
for (int i = 5; i * i <= n; i = i + 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
// Driver Program
int main()
{
int n = 17;
// Check if number is prime
// and of the form 16*n + 1
if (isPrime(n) && (n % 16 == 1)) {
cout << "YES";
}
else {
cout << "NO";
}
return 0;
}
Java
// JAVA program to check if a number is
// Quartan Prime or not
class GFG {
// Function to check if a number
// is prime or not
static boolean isPrime(int n)
{
// Corner cases
if (n <= 1)
return false;
if (n <= 3)
return true;
// This is checked so that we can skip
// middle five numbers in below loop
if (n % 2 == 0 || n % 3 == 0)
return false;
for (int i = 5; i * i <= n; i = i + 6) {
if (n % i == 0 || n % (i + 2) == 0) {
return false;
}
}
return true;
}
// Driver Program
public static void main(String[] args)
{
int n = 17;
// Check if number is prime
// and of the form 16*n + 1
if (isPrime(n) && (n % 16 == 1)) {
System.out.println("YES");
}
else {
System.out.println("NO");
}
}
}
Python3
# Python 3 program to check if a number is
# Quartan Prime or not
# Utility function to check
# if a number is prime or not
def isPrime(n) :
# Corner cases
if (n <= 1) :
return False
if (n <= 3) :
return True
# This is checked so that we can skip
# middle five numbers in below loop
if (n % 2 == 0 or n % 3 == 0) :
return False
i = 5
while(i * i <= n) :
if (n % i == 0 or n % (i + 2) == 0) :
return False
i = i + 6
return True
# Driver Code
n = 17
# Check if number is prime
# and of the form 16 * n + 1
if(isPrime(n) and (n % 16 == 1) ):
print("YES")
else:
print("NO")
C#
// C# program to check if a number
// is Quartan Prime or not
using System;
class GFG
{
// Function to check if a number
// is prime or not
static bool isPrime(int n)
{
// Corner cases
if (n <= 1)
return false;
if (n <= 3)
return true;
// This is checked so that we
// can skip middle five numbers
// in below loop
if (n % 2 == 0 || n % 3 == 0)
return false;
for (int i = 5; i * i <= n; i = i + 6)
{
if (n % i == 0 || n % (i + 2) == 0)
{
return false;
}
}
return true;
}
// Driver Code
public static void Main()
{
int n = 17;
// Check if number is prime
// and of the form 16*n + 1
if (isPrime(n) && (n % 16 == 1))
{
Console.WriteLine("YES");
}
else
{
Console.WriteLine("NO");
}
}
}
// This code is contributed
// by inder_verma
PHP
输出:
YES