diff --git a/C++/sieve.cpp b/C++/sieve.cpp new file mode 100644 index 0000000..f3617fe --- /dev/null +++ b/C++/sieve.cpp @@ -0,0 +1,32 @@ +//Program to find the prime numbers in O(nloglogn) +#include +using namespace std; + +void SieveOfEratosthenes(int n) +{ + bool prime[n+1]; + memset(prime, true, sizeof(prime)); + + for (int p=2; p*p<=n; p++) + { + if (prime[p] == true) + { + for (int i=p*p; i<=n; i += p) + prime[i] = false; + } + } + + for (int p=2; p<=n; p++) + if (prime[p]) + cout << p << " "; +} + +// Driver Program +int main() +{ + int n = 1000; + cout << "Here are the prime numbers smaller " + << " than or equal to " << n << endl; + SieveOfEratosthenes(n); + return 0; +}