Sieve of Eratosthenes in C++

In this tutorial, we learn about sieve of Eratosthenes algorithm in C++.
Before we start, let’s know about what is sieve of Eratosthenes algorithm?

sieve of Eratosthenes algorithm is a very famous and efficient algorithm to generate all small prime numbers up to around 1-10 million. This algorithm is given by a Greek mathematician named Eratosthenes.  By using this algorithm, we can write a simple program for prime number generation.

What we do in this particular algorithm is that, we first create a list of all the numbers from 2 to n and initially say that all of them are prime.

If n=25,
We create a list from 2 to 20

2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20.

Now we start the first element in the list, if 2 is prime, all the multiples of 2 can’t be prime. We cancel all the multiples of 2, they are not prime because they are divided by 2.

2  3  5  7  9  11  13  15  17  19.

Now we go to 3, so all the multiples of 3 can’t be prime, so they cancel out.

2  3  5  7  11  13  17  19.

All the remaining numbers are prime. So this is how sieve of Eratosthenes algorithm works.

C++ Program: sieve of Eratosthenes in C++

#include <iostream>
const int n = 20;
 
int main()
{
    int arr[20] = {0};
 
    for (int i = 2; i < 20; i++)
    {
        for (int j = i * i; j < 20; j+=i)
        {
            arr[j - 1] = 1;
        }
    }
    for (int i = 1; i < 20; i++)
    {
        if (arr[i - 1] == 0)
            std::cout << i << "\t";
    }
}

 

Output:  1    2    3    5    7    11    13    17    19.

Do let me know in the comment section if you have any doubt.

Also read:   How to count the number of spaces in a string in C++

Check if a number is an Armstrong number or not in C++

Leave a Reply

Your email address will not be published. Required fields are marked *