






'''simple docstring'''



def 							lowercase_				(    __A :       int					,      __A :       int			)       ->      int:



 """simple docstring"""




 while b:
  lowercase  ,		lowercase					:   Union[str, Any]				  =b, a % b
 return a


def 							lowercase_				(    __A :       int					,      __A :       int			)       ->      int:



 """simple docstring"""




 return a if b == 0 else euclidean_gcd_recursive(__A					,      a % b			)


def 							lowercase_				(    )       ->      Any:



 """simple docstring"""




 print(F'euclidean_gcd(3, 5) = {euclidean_gcd(3					,      5			)}'			)
 print(F'euclidean_gcd(5, 3) = {euclidean_gcd(5					,      3			)}'			)
 print(F'euclidean_gcd(1, 3) = {euclidean_gcd(1					,      3			)}'			)
 print(F'euclidean_gcd(3, 6) = {euclidean_gcd(3					,      6			)}'			)
 print(F'euclidean_gcd(6, 3) = {euclidean_gcd(6					,      3			)}'			)

 print(F'euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3					,      5			)}'			)
 print(F'euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5					,      3			)}'			)
 print(F'euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1					,      3			)}'			)
 print(F'euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3					,      6			)}'			)
 print(F'euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6					,      3			)}'			)


if __name__ == "__main__":
      main()











'''simple docstring'''



from __future__ import annotations

SCREAMING_SNAKE_CASE						=	8.988E9  # units = N * m^s * C^-2


def 							lowercase_				(    __A :       float					,      __A :       float					,      __A :       float					,      __A :       float			)       ->      dict[str, float]:



 """simple docstring"""




 lowercase					:   Dict				  =abs(chargea * chargea			)

 if (force, chargea, chargea, distance).count(0			) != 1:
  raise ValueError('''One and only one argument must be 0'''			)
 if distance < 0:
  raise ValueError('''Distance cannot be negative'''			)
 if force == 0:
  lowercase					:   Union[str, Any]				  =COULOMBS_CONSTANT * charge_product / (distance**2)
  return {"force": force}
 elif chargea == 0:
  lowercase					:   int				  =abs(__A			) * (distance**2) / (COULOMBS_CONSTANT * chargea)
  return {"charge1": chargea}
 elif chargea == 0:
  lowercase					:   int				  =abs(__A			) * (distance**2) / (COULOMBS_CONSTANT * chargea)
  return {"charge2": chargea}
 elif distance == 0:
  lowercase					:   Tuple				  =(COULOMBS_CONSTANT * charge_product / abs(__A			)) ** 0.5
  return {"distance": distance}
 raise ValueError('''Exactly one argument must be 0'''			)


if __name__ == "__main__":
      import doctest

      doctest.testmod()



