Source code for pyutil.numerical.gcd_iter

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Display an iterative method for determining the greatest common denominator.

Jan 17, 2019:

    Just added in :mod:`sys` so that we accept input from the user.


"""
import logging
import sys


[docs]def gcd_iter(a, b): """Find the greatest common denominator with 2 arbitrary integers. Parameters ---------- a : int User provided integer b : int User provided integer Returns ------- gcd : int Greatest common denominator. """ orig_b = b orig_a = a if a > b: while b > 0: if a % b == 0 and orig_b % b == 0: return b b -= 1 else: while a > 0: if b % a == 0 and orig_a % a == 0: return a a -= 1
if __name__ == "__main__": args = sys.argv[1:] logging.basicConfig(level=logging.WARNING) if len(args) == 2: a = args[0] b = args[1] try: a = args[0] b = args[1] except (NameError, IndexError): logging.error("Not enough args provided.") sys.exit() try: a = int(a) b = int(b) except TypeError as e: print(e) sys.exit() gcd = gcd_iter(a, b) print(gcd)