https://medium.com/@sanjaykumar.kedu/understanding-and-implementing-gcd-calculation-in-python-without-library-functions-b2e75931b8f3