

def 				snake_case_(_UpperCamelCase			,	_UpperCamelCase					)							->     int:



  """simple docstring"""






  return abs(_UpperCamelCase					) if a == 0 else greatest_common_divisor(b % a			,	_UpperCamelCase					)



def 				snake_case_(_UpperCamelCase			,	_UpperCamelCase					)							->     int:



  """simple docstring"""






  while y:  # --> when y=0 then loop will terminate and return x as final GCD.
    _snake_case,					_snake_case						=							y, x % y
  return abs(_UpperCamelCase					)



def 				snake_case_()							->     int:



  """simple docstring"""






  try:
    _snake_case						=							input('''Enter two integers separated by comma (,): '''					).split(''','''					)
    _snake_case						=							int(nums[0]					)
    _snake_case						=							int(nums[1]					)
    print(
        F"""greatest_common_divisor({num_a}, {num_a}) = """
        F"""{greatest_common_divisor(_UpperCamelCase			,	_UpperCamelCase					)}"""					)
    print(F"""By iterative gcd({num_a}, {num_a}) = {gcd_by_iterative(_UpperCamelCase			,	_UpperCamelCase					)}"""					)
  except (IndexError, UnboundLocalError, ValueError):
    print('''Wrong input'''					)


if __name__ == "__main__":
 main()




def 				snake_case_(_UpperCamelCase			,	_UpperCamelCase					)							->     str:



  """simple docstring"""






  if a < 0 or b < 0:
    raise ValueError('''the value of both inputs must be positive'''					)
  _snake_case						=							str(bin(_UpperCamelCase					)					)[2:]  # remove the leading "0b"
  _snake_case						=							str(bin(_UpperCamelCase					)					)[2:]
  _snake_case						=							max(len(_UpperCamelCase					)			,	len(_UpperCamelCase					)					)
  return "0b" + "".join(
      str(int('''1''' in (char_a, char_b)					)					)
      for char_a, char_b in zip(a_binary.zfill(_UpperCamelCase					)			,	b_binary.zfill(_UpperCamelCase					)					)					)


if __name__ == "__main__":
 import doctest

 doctest.testmod()

