Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 06 / sieveOfEratosthenes.cpp
diff options
context:
space:
mode:
Commitae90cb76ace17c6a2b0bee34d151242855ca5bab (patch)
Author
 Angel Dimitriev <achi_d@abv.bg>
2021-11-15 16:52:00 +0200
Committer
 GitHub <noreply@github.com>
2021-11-15 16:52:00 +0200
Files5b423fb84a8487562376d04011677b9e09ea4312 /Sem. 06/sieveOfEratosthenes.cpp
Introduction_to_programming_FMI-ae90cb76ace17c6a2b0bee34d151242855ca5bab.tar
Introduction_to_programming_FMI-ae90cb76ace17c6a2b0bee34d151242855ca5bab.tar.gz
Introduction_to_programming_FMI-ae90cb76ace17c6a2b0bee34d151242855ca5bab.zip
Parent2a0469e65b9d4e0dde42656c199c7dd477e7e139 (diff)
Add files via upload
1 files changed, 48 insertions, 0 deletions
-rw-r--r--Sem. 06/sieveOfEratosthenes.cpp48
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 <iostream>
+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);
+}
+