Program to find the Nth Prime Number - GeeksforGeeks

26 Apr, 2021
Given an integer N. The task is to find the Nth prime number.
Examples:  
Input : 5 Output : 11
Input : 16 Output : 53
Input : 1049 Output : 8377 
Approach:  
Find the prime numbers up to MAX_SIZE using Sieve of Eratosthenes.
Store all primes in a vector.
For a given number N, return the element at (N-1)th index in a vector.
Below is the implementation of the above approach: 
C++
Java
Python3
C#
Javascript
// C++ program to the nth prime number #include <bits/stdc++.h>using namespace std; // initializing the max value#define MAX_SIZE 1000005 // Function to generate N prime numbers using// Sieve of Eratosthenesvoid SieveOfEratosthenes(vector<int>& primes){    // Create a boolean array "IsPrime[0..MAX_SIZE]" and    // initialize all entries it as true. A value in    // IsPrime[i] will finally be false if i is    // Not a IsPrime, else true.    bool IsPrime[MAX_SIZE];    memset(IsPrime, true, sizeof(IsPrime));     for (int p = 2; p * p < MAX_SIZE; p++) {        // If IsPrime[p] is not changed, then it is a prime        if (IsPrime[p] == true) {            // Update all multiples of p greater than or            // equal to the square of it            // numbers which are multiple of p and are            // less than p^2 are already been marked.            for (int i = p * p; i < MAX_SIZE; i += p)                IsPrime[i] = false;        }    }     // Store all prime numbers    for (int p = 2; p < MAX_SIZE; p++)        if (IsPrime[p])            primes.push_back(p);} // Driver Codeint main(){    // To store all prime numbers    vector<int> primes;     // Function call    SieveOfEratosthenes(primes);     cout << "5th prime number is " << primes[4] << endl;    cout << "16th prime number is " << primes[15] << endl;    cout << "1049th prime number is " << primes[1048];     return 0;}
// Java program to the nth prime number import java.util.ArrayList;class GFG{         // initializing the max value    static int MAX_SIZE = 1000005;         // To store all prime numbers    static ArrayList<Integer> primes =       new ArrayList<Integer>();         // Function to generate N prime numbers    // using Sieve of Eratosthenes    static void SieveOfEratosthenes()    {        // Create a boolean array "IsPrime[0..MAX_SIZE]"        // and initialize all entries it as true.        // A value in IsPrime[i] will finally be false        // if i is Not a IsPrime, else true.        boolean [] IsPrime = new boolean[MAX_SIZE];                 for(int i = 0; i < MAX_SIZE; i++)            IsPrime[i] = true;                 for (int p = 2; p * p < MAX_SIZE; p++)        {            // If IsPrime[p] is not changed,            // then it is a prime            if (IsPrime[p] == true)            {                // Update all multiples of p greater than or                // equal to the square of it                // numbers which are multiple of p and are                // less than p^2 are already been marked.                for (int i = p * p; i < MAX_SIZE; i += p)                    IsPrime[i] = false;            }        }             // Store all prime numbers        for (int p = 2; p < MAX_SIZE; p++)        if (IsPrime[p] == true)                primes.add(p);    }         // Driver Code    public static void main (String[] args)    {                 // Function call        SieveOfEratosthenes();             System.out.println("5th prime number is " +                                    primes.get(4));        System.out.println("16th prime number is " +                                    primes.get(15));        System.out.println("1049th prime number is " +                                    primes.get(1048));    }} // This code is contributed by ihritik
# Python3 program to the nth prime number primes = [] # Function to generate N prime numbers using # Sieve of Eratosthenesdef SieveOfEratosthenes():         n = 1000005         # Create a boolean array "prime[0..n]" and    # initialize all entries it as true. A value    # in prime[i] will finally be false if i is    # Not a prime, else true.    prime = [True for i in range(n + 1)]         p = 2    while (p * p <= n):                   # If prime[p] is not changed,        # then it is a prime        if (prime[p] == True):                           # Update all multiples of p            for i in range(p * p, n + 1, p):                prime[i] = False                         p += 1           # Print all prime numbers    for p in range(2, n + 1):        if prime[p]:            primes.append(p)   # Driver codeif __name__=='__main__':         # Function call    SieveOfEratosthenes()         print("5th prime number is", primes[4]);    print("16th prime number is", primes[15]);    print("1049th prime number is", primes[1048]);     # This code is contributed by grand_master
// C# program to the nth prime numberusing System;using System.Collections; class GFG{     // initializing the max valuestatic int MAX_SIZE = 1000005; // To store all prime numbersstatic ArrayList primes = new ArrayList(); // Function to generate N prime numbers using// Sieve of Eratosthenesstatic void SieveOfEratosthenes(){    // Create a boolean array "IsPrime[0..MAX_SIZE]"    // and initialize all entries it as true.    // A value in IsPrime[i] will finally be false    // if i is Not a IsPrime, else true.    bool [] IsPrime = new bool[MAX_SIZE];         for(int i = 0; i < MAX_SIZE; i++)        IsPrime[i] = true;         for (int p = 2; p * p < MAX_SIZE; p++)    {        // If IsPrime[p] is not changed,        // then it is a prime        if (IsPrime[p] == true)        {            // Update all multiples of p greater than or            // equal to the square of it            // numbers which are multiple of p and are            // less than p^2 are already been marked.            for (int i = p * p; i < MAX_SIZE; i += p)                IsPrime[i] = false;        }    }     // Store all prime numbers    for (int p = 2; p < MAX_SIZE; p++)    if (IsPrime[p] == true)            primes.Add(p);} // Driver Codepublic static void Main (){         // Function call    SieveOfEratosthenes();     Console.WriteLine("5th prime number is " +                                   primes[4]);    Console.WriteLine("16th prime number is " +                                   primes[15]);    Console.WriteLine("1049th prime number is " +                                   primes[1048]);}} // This code is contributed by ihritik
<script> // Javascript program to the nth prime number // initializing the max valuevar MAX_SIZE = 1000005; // Function to generate N prime numbers using// Sieve of Eratosthenesfunction SieveOfEratosthenes(primes){    // Create a boolean array    // "IsPrime[0..MAX_SIZE]" and    // initialize all entries it as true.    // A value in    // IsPrime[i] will finally be false if i is    // Not a IsPrime, else true.    var IsPrime = Array(MAX_SIZE).fill(true);         var p,i;    for (p = 2; p * p < MAX_SIZE;p++)    {        // If IsPrime[p] is not changed,        // then it is a prime        if (IsPrime[p] == true)        {            // Update all multiples of p            // greater than or            // equal to the square of it            // numbers which are multiple            // of p and are            // less than p^2 are already            // been marked.            for(i = p * p; i < MAX_SIZE; i += p)                IsPrime[i] = false;        }    }     // Store all prime numbers    for (p = 2; p < MAX_SIZE; p++)        if (IsPrime[p])            primes.push(p);} // Driver Code    // To store all prime numbers    var primes = [];     // Function call    SieveOfEratosthenes(primes);     document.write(    "5th prime number is "+primes[4]+"<br>"    );    document.write(    "16th prime number is "+primes[15]+"<br>"    );    document.write(    "1049th prime number is "+primes[1048]+"<br>"    ); </script>
5th prime number is 11
16th prime number is 53
1049th prime number is 8377
 
ihritik
grand_master
ipg2016107
Prime Number
school-programming
sieve
Mathematical
Mathematical
Prime Number
sieve
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Merge two sorted arrays
Modulo Operator (%) in C/C++ with Examples
Prime Numbers
Program to find sum of elements in a given array
Program for factorial of a number
Operators in C / C++
Program for Decimal to Binary Conversion
Algorithm to solve Rubik's Cube
Minimum number of jumps to reach end
The Knight's tour problem | Backtracking-1