From ae90cb76ace17c6a2b0bee34d151242855ca5bab Mon Sep 17 00:00:00 2001 From: Angel Dimitriev Date: Mon, 15 Nov 2021 16:52:00 +0200 Subject: Add files via upload --- Sem. 06/sieveOfEratosthenes.cpp | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 Sem. 06/sieveOfEratosthenes.cpp (limited to 'Sem. 06/sieveOfEratosthenes.cpp') diff --git a/Sem. 06/sieveOfEratosthenes.cpp b/Sem. 06/sieveOfEratosthenes.cpp new file mode 100644 index 0000000..2505ad9 --- /dev/null +++ b/Sem. 06/sieveOfEratosthenes.cpp @@ -0,0 +1,48 @@ +#include +using namespace std; + +void init(bool arr[], unsigned size, bool value) +{ + for (unsigned i = 0; i < size; i++) + arr[i] = value; +} + +void sieveEratosthenes(bool arr[], unsigned size) +{ + arr[0] = arr[1] = false; + + for (unsigned i = 2; i < size; i++) + { + if (!arr[i]) //ако числото е задраскано + continue; + + for (unsigned iter = i + i; iter < size; iter += i) + arr[iter] = false; //задраскваме + } +} + +void printSieve(const bool arr[], unsigned size) +{ + for (unsigned i = 0; i < size; i++) + { + if (arr[i]) + { + cout << i << " "; + } + } +} + + +int main() +{ + const unsigned MAX_SIZE = 1000; + bool arr[MAX_SIZE]; + + int n; + cin >> n; + + init(arr, n, true); + sieveEratosthenes(arr, n); + printSieve(arr, n); +} + -- cgit v1.3.1-23-gd82d