# C++ Program for Sieve of Eratosthenes

• Difficulty Level : Easy
• Last Updated : 15 Jun, 2022

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”.

## CPP

 `// 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```

Time Complexity : O ( n* log(logn))

Auxiliary Space : O ( 1 )

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

My Personal Notes arrow_drop_up
Recommended Articles
Page :