Skip to content
Related Articles
Count Full Prime numbers in a given range
• Last Updated : 28 Apr, 2021

Given two integers L and R, the task is to count the number of full prime numbers that are present in the given range.

A number is said to be Full prime if the number itself is prime and all its digits are also prime.

Examples:

• 53 is Full Prime because it is prime and all its digits (5 and 3) are also prime.
• 13 is not Full Prime because it has a non-prime digit ( 1 is not prime).

Examples:

Input: L = 1, R = 100
Output : 8
Explanations: 2 3 5 7 23 37 53 73 are the Full Prime numbers between 1 and 100. Therefore, the count is 8.

Input: L = 200, R = 300
Output: 5
Explanation: 223 227 233 257 277 are the Full Prime numbers between 200 and 300. Therefore, the count is 5.

Approach: Follow the steps below to solve the problem:

• Simply traverse the range from L to R.
• For every number i in the range, check if it is divisible by any number from the range [2, sqrt(i)]. If found to be true, then it is not a prime. Proceed to the next number.
• Otherwise, check if all its digits are prime or not. If found to be true, increase count.
• Finally, after complete traversal of the range, print the value of count.

Below is the implementation of the above approach:

## C++

 `// C++ Program to implement``// the above approach``#include ``using` `namespace` `std;` `// Function to check if a``// number is prime or not``bool` `isPrime(``int` `num)``{``    ``if` `(num <= 1)``        ``return` `false``;` `    ``for` `(``int` `i = 2; i * i <= num; i++)` `        ``// If a divisor of n exists``        ``if` `(num % i == 0)``            ``return` `false``;``    ``return` `true``;``}` `// Function to check if a``// number is Full Prime or not``bool` `isFulPrime(``int` `n)``{``    ``// If n is not a prime``    ``if` `(!isPrime(n))``        ``return` `false``;` `    ``// Otherwise``    ``else` `{``        ``while` `(n > 0) {``            ``// Extract digit``            ``int` `rem = n % 10;``            ``// If any digit of n``            ``// is non-prime``            ``if` `(!(rem == 2 || rem == 3``                  ``|| rem == 5 || rem == 7))``                ``return` `false``;` `            ``n = n / 10;``        ``}``    ``}``    ``return` `true``;``}` `// Function to print count of``// Full Primes in a range [L, R]``int` `countFulPrime(``int` `L, ``int` `R)``{``    ``// Stores count of full primes``    ``int` `cnt = 0;` `    ``for` `(``int` `i = L; i <= R; i++) {` `        ``// Check if i is full prime``        ``if` `((i % 2) != 0 && isFulPrime(i)) {``            ``cnt++;``        ``}``    ``}``    ``return` `cnt;``}` `// Driver Code``int` `main()``{``    ``int` `L = 1, R = 100;` `    ``// Stores count of full primes``    ``int` `ans = 0;` `    ``if` `(L < 3)``        ``ans++;``    ``cout << ans + countFulPrime(L, R);` `    ``return` `0;``}`

## Java

 `// Java program to implement``// the above approach``import` `java.io.*;``import` `java.util.*;` `class` `GFG{`` ` `// Function to check if a``// number is prime or not``static` `boolean` `isPrime(``int` `num)``{``    ``if` `(num <= ``1``)``        ``return` `false``;`` ` `    ``for``(``int` `i = ``2``; i * i <= num; i++)``    ` `        ``// If a divisor of n exists``        ``if` `(num % i == ``0``)``            ``return` `false``;``            ` `    ``return` `true``;``}`` ` `// Function to check if a``// number is Full Prime or not``static` `boolean` `isFulPrime(``int` `n)``{``    ` `    ``// If n is not a prime``    ``if` `(!isPrime(n))``        ``return` `false``;`` ` `    ``// Otherwise``    ``else``    ``{``        ``while` `(n > ``0``)``        ``{``            ` `            ``// Extract digit``            ``int` `rem = n % ``10``;``            ` `            ``// If any digit of n``            ``// is non-prime``            ``if` `(!(rem == ``2` `|| rem == ``3` `||``                  ``rem == ``5` `|| rem == ``7``))``                ``return` `false``;`` ` `            ``n = n / ``10``;``        ``}``    ``}``    ``return` `true``;``}`` ` `// Function to print count of``// Full Primes in a range [L, R]``static` `int` `countFulPrime(``int` `L, ``int` `R)``{``    ` `    ``// Stores count of full primes``    ``int` `cnt = ``0``;`` ` `    ``for``(``int` `i = L; i <= R; i++)``    ``{``        ` `        ``// Check if i is full prime``        ``if` `((i % ``2``) != ``0` `&& isFulPrime(i))``        ``{``            ``cnt++;``        ``}``    ``}``    ``return` `cnt;``}`` ` `// Driver Code``public` `static` `void` `main (String[] args)``{``    ``int` `L = ``1``, R = ``100``;`` ` `    ``// Stores count of full primes``    ``int` `ans = ``0``;`` ` `    ``if` `(L < ``3``)``        ``ans++;``        ` `    ``System.out.println(ans + countFulPrime(L, R));``}``}` `// This code is contributed by sanjoy_62`

## Python3

 `# Python3 program to implement``# the above approach` `# Function to check if a``# number is prime or not``def` `isPrime(num):``    ` `    ``if` `(num <``=` `1``):``        ``return` `False` `    ``for` `i ``in` `range``(``2``, num ``+` `1``):``        ``if` `i ``*` `i > num:``            ``break` `        ``# If a divisor of n exists``        ``if` `(num ``%` `i ``=``=` `0``):``            ``return` `False``            ` `    ``return` `True` `# Function to check if a``# number is Full Prime or not``def` `isFulPrime(n):``    ` `    ``# If n is not a prime``    ``if` `(``not` `isPrime(n)):``        ``return` `False` `    ``# Otherwise``    ``else``:``        ``while` `(n > ``0``):``            ` `            ``# Extract digit``            ``rem ``=` `n ``%` `10``            ` `            ``# If any digit of n``            ``# is non-prime``            ``if` `(``not` `(rem ``=``=` `2` `or` `rem ``=``=` `3` `or``                     ``rem ``=``=` `5` `or` `rem ``=``=` `7``)):``                ``return` `False` `            ``n ``=` `n ``/``/` `10``            ` `    ``return` `True` `# Function to prcount of``# Full Primes in a range [L, R]``def` `countFulPrime(L, R):``    ` `    ``# Stores count of full primes``    ``cnt ``=` `0` `    ``for` `i ``in` `range``(L, R ``+` `1``):``        ` `        ``# Check if i is full prime``        ``if` `((i ``%` `2``) !``=` `0` `and` `isFulPrime(i)):``            ``cnt ``+``=` `1``            ` `    ``return` `cnt` `# Driver Code``if` `__name__ ``=``=` `'__main__'``:``    ` `    ``L ``=` `1``    ``R ``=` `100` `    ``# Stores count of full primes``    ``ans ``=` `0` `    ``if` `(L < ``3``):``        ``ans ``+``=` `1``        ` `    ``print``(ans ``+` `countFulPrime(L, R))` `# This code is contributed by mohit kumar 29`

## C#

 `// C# program to implement``// the above approach``using` `System;` `class` `GFG{`` ` `// Function to check if a``// number is prime or not``static` `bool` `isPrime(``int` `num)``{``    ``if` `(num <= 1)``        ``return` `false``;`` ` `    ``for``(``int` `i = 2; i * i <= num; i++)``    ` `        ``// If a divisor of n exists``        ``if` `(num % i == 0)``            ``return` `false``;``            ` `    ``return` `true``;``}`` ` `// Function to check if a``// number is Full Prime or not``static` `bool` `isFulPrime(``int` `n)``{``    ` `    ``// If n is not a prime``    ``if` `(!isPrime(n))``        ``return` `false``;`` ` `    ``// Otherwise``    ``else``    ``{``        ``while` `(n > 0)``        ``{``            ` `            ``// Extract digit``            ``int` `rem = n % 10;``            ` `            ``// If any digit of n``            ``// is non-prime``            ``if` `(!(rem == 2 || rem == 3 ||``                  ``rem == 5 || rem == 7))``                ``return` `false``;`` ` `            ``n = n / 10;``        ``}``    ``}``    ``return` `true``;``}`` ` `// Function to print count of``// Full Primes in a range [L, R]``static` `int` `countFulPrime(``int` `L, ``int` `R)``{``    ` `    ``// Stores count of full primes``    ``int` `cnt = 0;`` ` `    ``for``(``int` `i = L; i <= R; i++)``    ``{``        ` `        ``// Check if i is full prime``        ``if` `((i % 2) != 0 && isFulPrime(i))``        ``{``            ``cnt++;``        ``}``    ``}``    ``return` `cnt;``}`` ` `// Driver Code``public` `static` `void` `Main (String[] args)``{``    ``int` `L = 1, R = 100;`` ` `    ``// Stores count of full primes``    ``int` `ans = 0;`` ` `    ``if` `(L < 3)``        ``ans++;``        ` `    ``Console.WriteLine(ans + countFulPrime(L, R));``}``}` `// This code is contributed by math_lover`

## Javascript

 ``
Output:
`8`

Time Complexity: O(N3/2)
Auxiliary Space: O(1)

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