https://medium.com/explorations-in-python/finding-the-highest-common-factor-in-python-with-the-euclidean-algorithm-a9658a8166b0