From e97247c85a207fdd86502e63360c6799f97b312e Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 17 Nov 2021 09:17:58 +0200 Subject: Solved all exercises from Sem06 --- Sem. 06/Solutions/exercise03.cpp | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Sem. 06/Solutions/exercise03.cpp (limited to 'Sem. 06/Solutions/exercise03.cpp') diff --git a/Sem. 06/Solutions/exercise03.cpp b/Sem. 06/Solutions/exercise03.cpp new file mode 100644 index 0000000..30b373b --- /dev/null +++ b/Sem. 06/Solutions/exercise03.cpp @@ -0,0 +1,31 @@ +#include + +using namespace std; + +// Greatest Common Divisor +int gcd(int a, int b) { + // Eucledian algorithm + while (b != 0) { + int temp = b; + b = a % b; + a = temp; + } + return a; +} + +int gcdArray(int nums[], int len) { + if (len == 1) return nums[0]; + + int res = gcd(nums[len - 2], nums[len - 1]); + + for (int i = len - 3; i >= 0; i--) + res = gcd(nums[i], res); + + return res; +} + +int main() { + int numbers[4] = { 9, 18, 6, 12 }; + + cout << gcdArray(numbers, 4) << endl; +} -- cgit v1.3.1-23-gd82d