Related Articles

# C++ Program for Sieve of Eratosthenes

• Difficulty Level : Easy
• Last Updated : 27 Feb, 2018

Given a number n, print all primes smaller than or equal to n. It is also given that n is a small number.
For example, if n is 10, the output should be “2, 3, 5, 7”. If n is 20, the output should be “2, 3, 5, 7, 11, 13, 17, 19”.

## C/C++

 `// C++ program to print all primes smaller than or equal to``// n using Sieve of Eratosthenes``#include ``using` `namespace` `std;`` ` `void` `SieveOfEratosthenes(``int` `n)``{``    ``// 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.``    ``bool` `prime[n+1];``    ``memset``(prime, ``true``, ``sizeof``(prime));`` ` `    ``for` `(``int` `p=2; p*p<=n; p++)``    ``{``        ``// If prime[p] is not changed, then it is a prime``        ``if` `(prime[p] == ``true``)``        ``{``            ``// Update all multiples of p``            ``for` `(``int` `i=p*2; i<=n; i += p)``                ``prime[i] = ``false``;``        ``}``    ``}`` ` `    ``// Print all prime numbers``    ``for` `(``int` `p=2; p<=n; p++)``       ``if` `(prime[p])``          ``cout << p << ``" "``;``}`` ` `// Driver Program to test above function``int` `main()``{``    ``int` `n = 30;``    ``cout << ``"Following are the prime numbers smaller "``         ``<< ``" than or equal to "` `<< n << endl;``    ``SieveOfEratosthenes(n);``    ``return` `0;``}`

Output:

```Following are the prime numbers below 30
2 3 5 7 11 13 17 19 23 29```

Please refer complete article on Sieve of Eratosthenes for more details!

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for the language and STL. 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