diff --git a/homework/nwd-nnw/nwdNww.hpp b/homework/nwd-nnw/nwdNww.hpp index 0491a2c9..cba114ce 100644 --- a/homework/nwd-nnw/nwdNww.hpp +++ b/homework/nwd-nnw/nwdNww.hpp @@ -1,11 +1,27 @@ #pragma once int NWD(int lhs, int rhs) { - // TODO: Implement me :) - return -1; + if (lhs == 0) { + return rhs; + } + return std::abs(NWD(rhs % lhs, lhs)); } int NWW(int lhs, int rhs) { - // TODO: Implement me :) - return -1; + int bigger = std::abs(std::max(lhs, rhs)); + int lcm{}; + if (lhs == 0 or rhs == 0) { + return 0; + } + if (lhs == rhs) { + return std::abs(lhs); + } + do { + if (bigger % lhs == 0 && bigger % rhs == 0) { + lcm = bigger; + break; + } else + ++bigger; + } while (true); + return lcm; }