# Check if a number is Full Prime

A full prime number is one in which the number itself is prime and all its digits are also prime. Given a number n, check if it is Full Prime or not.

Examples :

```Input : 53
Output : Yes
Explanation: Number 53 is prime and
its digits are also prime.

Input : 41
Output : No
Explanation: Number 41 is prime but
its digits are not prime.
```

## Recommended: Please solve it on PRACTICE first, before moving on to the solution.

The naive approach will be to check if the number is prime or not then check the digits are prime or not, but this wont be efficient enough.

The efficient method is to do the other way around as there will be very few numbers in every 1000 numbers for which we have to check if it is prime or not, rest all numbers will fail when its digits are not prime.

## CPP

 `// CPP program for checking of ` `// full prime ` `#include ` `using` `namespace` `std; ` ` `  `// function to check digits ` `bool` `checkDigits(``int` `n) ` `{ ` `    ``// check all digits are prime or not ` `    ``while` `(n) { ` `        ``int` `dig = n % 10; ` ` `  `        ``// check if digits are prime or not ` `        ``if` `(dig != 2 && dig != 3 &&  ` `            ``dig != 5 && dig != 7) ` `            ``return` `false``; ` ` `  `        ``n /= 10; ` `    ``} ` ` `  `    ``return` `true``; ` `} ` ` `  `// To check if n is prime or not ` `bool` `prime(``int` `n) ` `{ ` `    ``if` `(n == 1) ` `        ``return` `false``; ` ` `  `    ``// check for all factors ` `    ``for` `(``int` `i = 2; i * i <= n; i++) { ` `        ``if` `(n % i == 0) ` `            ``return` `false``; ` `    ``} ` ` `  `    ``return` `true``; ` `} ` ` `  `// To check if n is Full Prime ` `int` `isFullPrime(``int` `n) ` `{ ` `    ``// The order is important here for ` `    ``// efficiency. ` `    ``return` `(checkDigits(n) && prime(n)); ` `} ` ` `  `// Driver code to check the above function ` `int` `main() ` `{  ` `    ``int` `n = 53; ` `    ``if` `(isFullPrime(n)) ` `       ``cout << ``"Yes"``; ` `    ``else` `       ``cout << ``"No"``; ` `    ``return` `0; ` `} `

## Java

 `// Java program for checking ` `// of full prime ` `import` `java.util.*; ` ` `  `class` `Prime{ ` `     `  `    ``// function to check digits ` `    ``public` `static` `boolean` `checkDigits(``int` `n) ` `    ``{ ` `        ``// check all digits are prime or not ` `        ``while` `(n > ``0``) { ` `            ``int` `dig = n % ``10``; ` ` `  `            ``// check if digits are prime or not ` `            ``if` `(dig != ``2` `&& dig != ``3` `&&  ` `                ``dig != ``5` `&& dig != ``7``) ` `                ``return` `false``; ` ` `  `            ``n /= ``10``; ` `        ``} ` ` `  `        ``return` `true``; ` `    ``} ` `     `  `    ``// To check if n is prime or not ` `    ``public` `static` `boolean` `prime(``int` `n) ` `    ``{ ` `        ``if` `(n == ``1``) ` `            ``return` `false``; ` ` `  `        ``// check for all factors ` `        ``for` `(``int` `i = ``2``; i * i <= n; i++) { ` `            ``if` `(n % i == ``0``) ` `                ``return` `false``; ` `        ``} ` ` `  `        ``return` `true``; ` `    ``} ` `     `  `    ``// To check if n is Full Prime ` `    ``public` `static` `boolean` `isFullPrime(``int` `n) ` `    ``{ ` `        ``// The order is important here for ` `        ``// efficiency ` `        ``return` `(checkDigits(n) && prime(n)); ` `    ``} ` `     `  `    ``// driver code ` `    ``public` `static` `void` `main(String[] args) ` `    ``{ ` `        ``int` `n = ``53``; ` `        ``if` `(isFullPrime(n)) ` `            ``System.out.print( ``"Yes"` `); ` `        ``else` `            ``System.out.print( ``"No"``); ` `    ``} ` `} ` ` `  `// This code is contributed by rishabh_jain `

## Python

 `# Python program for checking ` `# of full prime ` ` `  `# function to check digits ` `def` `checkDigits(n): ` ` `  `    ``# check all digits are  ` `    ``# prime or not ` `    ``while` `(n) : ` `        ``dig ``=` `n ``%` `10` ` `  `        ``# check if digits are ` `        ``# prime or not ` `        ``if` `(dig !``=` `2` `and`  `                   ``dig !``=` `3` `and` `dig !``=` `5` `                   ``and` `dig !``=` `7``) : ` `            ``return` `0` `        ``n ``=` `n ``/` `10` ` `  `    ``return` `1` ` `  `# To check if n is prime or not ` `def` `prime(n): ` `    ``if` `(n ``=``=` `1``): ` `        ``return` `0` `         `  `    ``# check for all factors ` `    ``i ``=` `2` `    ``while` `i ``*` `i <``=` `n : ` `        ``if` `(n ``%` `i ``=``=` `0``): ` `            ``return` `0` `        ``i ``=` `i ``+` `1` `    ``return` `1` ` `  `# To check if n is Full Prime ` `def` `isFullPrime(n) : ` ` `  `    ``# The order is important here ` `    ``# for efficiency. ` `    ``return` `(checkDigits(n) ``and` `prime(n)) ` ` `  `# Driver code ` `n ``=` `53` `if` `(isFullPrime(n)) : ` `    ``print``(``"Yes"``) ` `else` `: ` `    ``print``(``"No"``) ` ` `  `# This code is contributed by rishabh_jain `

## C#

 `// C# program for checking ` `// of full prime ` `using` `System; ` ` `  `class` `Prime ` `{ ` `     `  `    ``// function to check digits ` `    ``public` `static` `bool` `checkDigits(``int` `n) ` `    ``{ ` `        ``// check all digits are prime or not ` `        ``while` `(n > 0) { ` `            ``int` `dig = n % 10; ` ` `  `            ``// check if digits are prime or not ` `            ``if` `(dig != 2 && dig != 3 &&  ` `                ``dig != 5 && dig != 7) ` `                ``return` `false``; ` ` `  `            ``n /= 10; ` `        ``} ` ` `  `        ``return` `true``; ` `    ``} ` `     `  `    ``// To check if n is prime or not ` `    ``public` `static` `bool` `prime(``int` `n) ` `    ``{ ` `        ``if` `(n == 1) ` `            ``return` `false``; ` ` `  `        ``// check for all factors ` `        ``for` `(``int` `i = 2; i * i <= n; i++) { ` `            ``if` `(n % i == 0) ` `                ``return` `false``; ` `        ``} ` ` `  `        ``return` `true``; ` `    ``} ` `     `  `    ``// To check if n is Full Prime ` `    ``public` `static` `bool` `isFullPrime(``int` `n) ` `    ``{ ` `        ``// The order is important here for ` `        ``// efficiency ` `        ``return` `(checkDigits(n) && prime(n)); ` `    ``} ` `     `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 53; ` `        ``if` `(isFullPrime(n)) ` `            ``Console.WriteLine( ``"Yes"` `); ` `        ``else` `            ``Console.WriteLine( ``"No"``); ` `    ``} ` `} ` ` `  `// This code is contributed by vt_m `

## PHP

 ` `

Output :

```Yes
```

If we are given multiple numbers and range of numbers is small enough so that we can store them in array, we can use Sieve of Eratosthenes to answer queries fast.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : jit_t

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.