Check if a number is Quartan Prime or not - GeeksforGeeks

07 May, 2021
Given a positive integer N, check if it is Quartan prime or not. Print ‘Yes’ if it is a Quartan prime otherwise Print ‘No’.Quartan Prime : A prime number of the form x4 + y4 where x > 0, y > 0, and x and y are integers is a Quartan Prime. Quartan Prime in the range 1 – 100 are:  
2, 17, 97  
Examples:  
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.
 
A Simple Solution is to check if the given number is prime or not and then check if it can be expressed in the form of x4 + y4 or not.An Efficient Solution is based on the fact that every Quartan Prime can also be expressed in the form 16*n + 1. So, we can check if a number is prime or not and can be expressed in the form of 16*n + 1 or not. If yes, Then the number is Quartan Prime otherwise not.Below is the implementation of the above approach 
C++
Java
Python3
C#
PHP
Javascript
// CPP program to check if a number is// Quartan Prime or not #include <bits/stdc++.h>using namespace std; // Function to check if a number// is prime or notbool 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 Programint 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 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");        }    }}
# Python 3 program to check if a number is# Quartan Prime or not # Utility function to check# if a number is prime or notdef 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 Coden = 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# program to check if a number// is Quartan Prime or notusing System; class GFG{ // Function to check if a number// is prime or notstatic 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 Codepublic 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// PHP program to check if a number// is Quartan Prime or not // Function to check if a// number is prime or notfunction 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 || $n % 3 == 0)        return false;     for ($i = 5; $i * $i <= $n;                 $i = $i + 6)    {        if ($n % $i == 0 ||            $n % ($i + 2) == 0)        {            return false;        }    }    return true;} // Driver Code$n = 17; // Check if number is prime// and of the form 16*n + 1if (isPrime($n) && ($n % 16 == 1)){    echo "YES";}else{    echo "NO";} // This code is contributed// anuj_67?>
<script>// Javascript program to check if a number is// Quartan Prime or not // Function to check if a number// is prime or notfunction 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 || n % 3 == 0)        return false;     for (var i = 5; i * i <= n; i = i + 6) {        if (n % i == 0 || n % (i + 2) == 0) {            return false;        }    }    return true;} // Driver Programvar n = 17; // Check if number is prime// and of the form 16*n + 1if (isPrime(n) && (n % 16 == 1)) {    document.write( "YES");}else {    document.write( "NO");} // This code is contributed by itsok.</script>
YES
 
inderDuMCA
vt_m
itsok
number-theory
Prime Number
Mathematical
number-theory
Mathematical
Prime Number
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Program to print prime numbers from 1 to N.
Modular multiplicative inverse
Fizz Buzz Implementation
Singular Value Decomposition (SVD)
Check if a number is Palindrome
Segment Tree | Set 1 (Sum of given range)
How to check if a given point lies inside or outside a polygon?
Program to multiply two matrices
Count ways to reach the n'th stair
Merge two sorted arrays with O(1) extra space