Count Full Prime numbers in a given range - GeeksforGeeks

08 Feb, 2022
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 = 100Output : 8Explanations: 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 = 300Output: 5Explanation: 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++
Java
Python3
C#
Javascript
// C++ Program to implement// the above approach#include <bits/stdc++.h>using namespace std; // Function to check if a// number is prime or notbool 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 notbool 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 Codeint 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 program to implement// the above approachimport java.io.*;import java.util.*; class GFG{  // Function to check if a// number is prime or notstatic 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 notstatic 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 Codepublic 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 program to implement# the above approach # Function to check if a# number is prime or notdef 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 notdef 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 print count 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 Codeif __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# program to implement// the above approachusing System; class GFG{  // Function to check if a// number is prime or notstatic 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 notstatic 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 Codepublic 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
<script> // Javascript Program to implement// the above approach // Function to check if a// number is prime or notfunction isPrime(num){    if (num <= 1)        return false;       for(let 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 notfunction isFulPrime(n){         // If n is not a prime    if (!isPrime(n))        return false;       // Otherwise    else    {        while (n > 0)        {                          // Extract digit            let rem = n % 10;                          // If any digit of n            // is non-prime            if (!(rem == 2 || rem == 3 ||                  rem == 5 || rem == 7))                return false;               n = Math.floor(n / 10);        }    }    return true;}   // Function to print count of// Full Primes in a range [L, R]function countFulPrime(L, R){          // Stores count of full primes    let cnt = 0;       for(let i = L; i <= R; i++)    {                  // Check if i is full prime        if ((i % 2) != 0 && isFulPrime(i))        {            cnt++;        }    }    return cnt;} // Driver codelet L = 1, R = 100; // Stores count of full primeslet ans = 0; if (L < 3)    ans++;      document.write(ans + countFulPrime(L, R)); // This code is contributed by splevel62 </script>
8
 
Time Complexity: O(N3/2)Auxiliary Space: O(1)
 
mohit kumar 29
sanjoy_62
math_lover
splevel62
simmytarika5
surinderdawra388
divisibility
number-digits
Prime Number
Mathematical
Searching
Searching
Mathematical
Prime Number
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Merge two sorted arrays
Modulo Operator (%) in C/C++ with Examples
Prime Numbers
Program to find GCD or HCF of two numbers
Print all possible combinations of r elements in a given array of size n
Binary Search
Maximum and minimum of an array using minimum number of comparisons
Linear Search
Search an element in a sorted and rotated array
Find the Missing Number