Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Find all the prime numbers of given number of digits

  • Last Updated : 13 May, 2021

Given an integer D, the task is to find all the prime numbers having D digits.
 

Examples: 
Input: D = 1 
Output: 2 3 5 7 
Input: D = 2 
Output: 11 13 17 19 23 29 31 37 41 43 47 53 61 67 71 73 79 83 89 97 
 

 

Approach: Numbers with D digits lie in the range [10(D – 1), 10D – 1]. So, check all the numbers in this interval and to check the number is prime or not, use Sieve of Eratosthenes to generate all the primes.
Below is the implementation of the above approach: 
 

C++




// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
 
const int sz = 1e5;
bool isPrime[sz + 1];
 
// Function for Sieve of Eratosthenes
void sieve()
{
    memset(isPrime, true, sizeof(isPrime));
 
    isPrime[0] = isPrime[1] = false;
 
    for (int i = 2; i * i <= sz; i++) {
        if (isPrime[i]) {
            for (int j = i * i; j < sz; j += i) {
                isPrime[j] = false;
            }
        }
    }
}
 
// Function to print all the prime
// numbers with d digits
void findPrimesD(int d)
{
 
    // Range to check integers
    int left = pow(10, d - 1);
    int right = pow(10, d) - 1;
 
    // For every integer in the range
    for (int i = left; i <= right; i++) {
 
        // If the current integer is prime
        if (isPrime[i]) {
            cout << i << " ";
        }
    }
}
 
// Driver code
int main()
{
 
    // Generate primes
    sieve();
    int d = 1;
    findPrimesD(d);
 
    return 0;
}

Java




// Java implementation of the approach
import java.util.*;
 
class GFG
{
static int sz = 100000;
static boolean isPrime[] = new boolean[sz + 1];
 
// Function for Sieve of Eratosthenes
static void sieve()
{
    for(int i = 0; i <= sz; i++)
    isPrime[i] = true;
     
    isPrime[0] = isPrime[1] = false;
 
    for (int i = 2; i * i <= sz; i++)
    {
        if (isPrime[i])
        {
            for (int j = i * i; j < sz; j += i)
            {
                isPrime[j] = false;
            }
        }
    }
}
 
// Function to print all the prime
// numbers with d digits
static void findPrimesD(int d)
{
 
    // Range to check integers
    int left = (int)Math.pow(10, d - 1);
    int right = (int)Math.pow(10, d) - 1;
 
    // For every integer in the range
    for (int i = left; i <= right; i++)
    {
 
        // If the current integer is prime
        if (isPrime[i])
        {
            System.out.print(i + " ");
        }
    }
}
 
// Driver code
public static void main(String args[])
{
 
    // Generate primes
    sieve();
    int d = 1;
    findPrimesD(d);
}
}
 
// This code is contributed by Arnab Kundu

Python 3




# Python 3 implementation of the approach
from math import sqrt, pow
sz = 100005
isPrime = [True for i in range(sz + 1)]
 
# Function for Sieve of Eratosthenes
def sieve():
    isPrime[0] = isPrime[1] = False
 
    for i in range(2, int(sqrt(sz)) + 1, 1):
        if (isPrime[i]):
            for j in range(i * i, sz, i):
                isPrime[j] = False
 
# Function to print all the prime
# numbers with d digits
def findPrimesD(d):
     
    # Range to check integers
    left = int(pow(10, d - 1))
    right = int(pow(10, d) - 1)
 
    # For every integer in the range
    for i in range(left, right + 1, 1):
         
        # If the current integer is prime
        if (isPrime[i]):
            print(i, end = " ")
         
# Driver code
if __name__ == '__main__':
     
    # Generate primes
    sieve()
    d = 1
    findPrimesD(d)
     
# This code is contributed by Surendra_Gangwar

C#




// C# implementation of the approach
using System;
 
class GFG
{
     
static int sz = 100000;
static bool []isPrime = new bool[sz + 1];
 
// Function for Sieve of Eratosthenes
static void sieve()
{
    for(int i = 0; i <= sz; i++)
    isPrime[i] = true;
     
    isPrime[0] = isPrime[1] = false;
 
    for (int i = 2; i * i <= sz; i++)
    {
        if (isPrime[i])
        {
            for (int j = i * i; j < sz; j += i)
            {
                isPrime[j] = false;
            }
        }
    }
}
 
// Function to print all the prime
// numbers with d digits
static void findPrimesD(int d)
{
 
    // Range to check integers
    int left = (int)Math.Pow(10, d - 1);
    int right = (int)Math.Pow(10, d) - 1;
 
    // For every integer in the range
    for (int i = left; i <= right; i++)
    {
 
        // If the current integer is prime
        if (isPrime[i])
        {
            Console.Write(i + " ");
        }
    }
}
 
// Driver code
static public void Main ()
{
     
    // Generate primes
    sieve();
    int d = 1;
    findPrimesD(d);
 
}
}
 
// This code is contributed by ajit.

Javascript




<script>
    // Javascript implementation of the approach
     
    let sz = 100000;
    let isPrime = new Array(sz + 1);
    isPrime.fill(false);
 
    // Function for Sieve of Eratosthenes
    function sieve()
    {
        for(let i = 0; i <= sz; i++)
            isPrime[i] = true;
 
        isPrime[0] = isPrime[1] = false;
 
        for (let i = 2; i * i <= sz; i++)
        {
            if (isPrime[i])
            {
                for (let j = i * i; j < sz; j += i)
                {
                    isPrime[j] = false;
                }
            }
        }
    }
 
    // Function to print all the prime
    // numbers with d digits
    function findPrimesD(d)
    {
 
        // Range to check integers
        let left = Math.pow(10, d - 1);
        let right = Math.pow(10, d) - 1;
 
        // For every integer in the range
        for (let i = left; i <= right; i++)
        {
 
            // If the current integer is prime
            if (isPrime[i])
            {
                document.write(i + " ");
            }
        }
    }
     
    // Generate primes
    sieve();
    let d = 1;
    findPrimesD(d);
 
// This code is contributed by suresh07.
</script>
Output: 
2 3 5 7

 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!