Related Articles
Check if a number is Quartan Prime or not
• Last Updated : 17 Jan, 2019

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.
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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++

 `// 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

 ``
Output:
```YES
```

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up