diff --git a/.idea/UNI_Python2.iml b/.idea/UNI_Python2.iml new file mode 100644 index 0000000..4c94235 --- /dev/null +++ b/.idea/UNI_Python2.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 27d55c0..61afc86 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,6 +3,7 @@ + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 0090b45..4319917 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -3,47 +3,72 @@ + + + + + - + + - + + + - { - "keyToString": { - "RunOnceActivity.ShowReadmeOnStart": "true", - "WebServerToolWindowFactoryState": "false", - "git-widget-placeholder": "main", - "last_opened_file_path": "C:/Universitaet/UNI_Python", - "node.js.detected.package.eslint": "true", - "node.js.detected.package.tslint": "true", - "node.js.selected.package.eslint": "(autodetect)", - "node.js.selected.package.tslint": "(autodetect)", - "python.debugger.dataview.coloredbydefault": "false", - "vue.rearranger.settings.migration": "true" + +}]]> - + + + + + + + + @@ -160,6 +189,7 @@ + diff --git a/ha_11/loosen_janniclas_1540907_12.cpp b/ha_11/loosen_janniclas_1540907_12.cpp new file mode 100644 index 0000000..5a3d264 --- /dev/null +++ b/ha_11/loosen_janniclas_1540907_12.cpp @@ -0,0 +1,66 @@ +#include +#include +#include +#include + +// use generics for a reusable method +template +std::string create_overflow() { + number next = 2; + number valid = 0; + number iter = 0; + + while(true) { + next = next * 2; + if(valid > next) { + std::string message = typeid(number).name(); + message += " overflow occurred: 2**" + std::to_string(iter) + " = " + std::to_string(next); + message += " should be bigger as 2**" + std::to_string(iter - 1) + " != " + std::to_string(valid); + return message; + } + iter++; valid = next; + } +} + +std::vector sieve_of_eratosthenes(int limit) { + // avoid edge cases limit=0 or limit=1 + int length = limit + 2; + + // preparation of a bool vector + std::vector primes(length, true); + primes[0] = false; + primes[1] = false; + + // calculate sieve + for(int i = 2; i <= std::sqrt(limit); i++) { + if(primes[i]) { + for(int p = i * i; p <= limit; p += i) { + primes[p] = false; + } + } + } + return primes; +} + +/* + * Anmerkung: + * Ich mag es nicht wirklich Pointer in C++ zu benutzen. Deshalb verwende ich die Klassen std::string und std::vector + * um zu verhindern, dass die Funktionen bool* bzw. char* pointer ausgeben müssen. + */ +int main() { + std::cout << create_overflow() << std::endl; + std::cout << create_overflow() << std::endl; + std::cout << create_overflow() << std::endl; + + int limit = 100; + std::vector primes = sieve_of_eratosthenes(limit); + std::cout << "Prime numbers up to " << limit << " are: "; + for (int i = 0; i < limit; ++i) { + if (primes[i]) { + std::cout << i << " "; + } + } + std::cout << std::endl; + + return 0; +} \ No newline at end of file diff --git a/loosen_janniclas_1540907_12.exe b/loosen_janniclas_1540907_12.exe new file mode 100644 index 0000000..bfc0119 Binary files /dev/null and b/loosen_janniclas_1540907_12.exe differ