From 45a9b582f32478bae47830baf4d864527af68e44 Mon Sep 17 00:00:00 2001 From: prashansa15 Date: Wed, 6 Oct 2021 12:59:12 +0530 Subject: [PATCH] sieve of eartosthenes added --- CPP Programs/sieveOfEartosthenes.cpp | 50 ++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 CPP Programs/sieveOfEartosthenes.cpp diff --git a/CPP Programs/sieveOfEartosthenes.cpp b/CPP Programs/sieveOfEartosthenes.cpp new file mode 100644 index 0000000..5469858 --- /dev/null +++ b/CPP Programs/sieveOfEartosthenes.cpp @@ -0,0 +1,50 @@ +/* + This program is used to print all the + prime numbers less than or equal to + a given number n. +*/ + +#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 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 <= n; i += p) + prime[i] = false; + } + } + + // Print all prime numbers + for (int p = 2; p <= n; p++) + if (prime[p]) + cout << p << " "; +} + +// Driver Code +int main(){ + int n; + cin >> n; + cout << "Following are the prime numbers smaller " + << " than or equal to " << n << endl; + SieveOfEratosthenes(n); + return 0; +}