diff --git a/homework/nwd-nnw/nwdNww.hpp b/homework/nwd-nnw/nwdNww.hpp index 0491a2c9..22d135a2 100644 --- a/homework/nwd-nnw/nwdNww.hpp +++ b/homework/nwd-nnw/nwdNww.hpp @@ -1,11 +1,34 @@ #pragma once int NWD(int lhs, int rhs) { - // TODO: Implement me :) - return -1; + lhs = abs(lhs); + rhs = abs(rhs); + + if (rhs == 0) { + return lhs; + } + + return NWD(rhs, lhs % rhs); } int NWW(int lhs, int rhs) { - // TODO: Implement me :) - return -1; + if (lhs == 0 || rhs == 0) { + return 0; + } + + lhs = abs(lhs); + rhs = abs(rhs); + + int lhs2 = lhs; + int rhs2 = rhs; + + while (lhs2 != rhs2) { + if (lhs2 < rhs2) { + lhs2 += lhs; + } else { + rhs2 += rhs; + } + } + + return lhs2; }