# ==============================================================================
"""EUCLID : compute the Euclidian division of two integer numbers"""
# ==============================================================================
__author__  = "Christophe Schlick modified by Philippe Blasi"
__version__ = "6.0" # use 'userloop/parse/inspect' from the 'ezCLI' module
__date__    = "2022-11-12"
__usage__   = """
User input: <numerator>,<denominator> (where numerator:int, denominator:int > 0)
App output: Euclidian division: numerator = denominator*q + r"""
# ==============================================================================
from ezCLI import *
# ------------------------------------------------------------------------------
def euclid(x:int,y:int) -> str:
  """return Euclidian decomposition: x = y*q + r"""
  return f"{x} = {y} * {x//y} + {x%y}"
# ------------------------------------------------------------------------------
def parser(command:str) -> str:
  """parse 'command' as two integers and return Euclidian decomposition"""
  a, b = parse(command); #inspect()
  return euclid(a, b)
# ==============================================================================
if __name__ == '__main__':
  userloop(parser, "Enter <numerator> <denominator>") # user interaction loop
# ==============================================================================
