# Check if a number is Quartan Prime or not

• Last Updated : 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++

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

 ``

## Javascript

 ``

Output:

`YES`

My Personal Notes arrow_drop_up