



'''simple docstring'''





from __future__ import annotations

def  a_  (							_lowerCAmelCase ,_lowerCAmelCase ,_lowerCAmelCase )   ->   tuple[float, float]:
  assert (
      c % greatest_common_divisor(_lowerCAmelCase ,_lowerCAmelCase ) == 0
  )  # greatest_common_divisor(a,b) function implemented below
  ((__lowerCamelCase) ,(__lowerCamelCase) ,(__lowerCamelCase)) : Tuple					 =				extended_gcd(_lowerCAmelCase ,_lowerCAmelCase )  # extended_gcd(a,b) function implemented below
  __lowerCamelCase : str					 =				c / d
  return (r * x, r * y)

def  a_  (							_lowerCAmelCase ,_lowerCAmelCase ,_lowerCAmelCase ,_lowerCAmelCase = 2 )   ->   None:
  ((__lowerCamelCase) ,(__lowerCamelCase)) : str					 =				diophantine(_lowerCAmelCase ,_lowerCAmelCase ,_lowerCAmelCase )  # Initial value
  __lowerCamelCase : List[Any]					 =				greatest_common_divisor(_lowerCAmelCase ,_lowerCAmelCase )
  __lowerCamelCase : Optional[Any]					 =				a // d
  __lowerCamelCase : List[str]					 =				b // d

  for i in range(_lowerCAmelCase ):
    __lowerCamelCase : List[Any]					 =				xa + i * q
    __lowerCamelCase : Tuple					 =				ya - i * p
    print(_lowerCAmelCase ,_lowerCAmelCase )

def  a_  (							_lowerCAmelCase ,_lowerCAmelCase )   ->   int:
  if a < b:
    __lowerCamelCase ,__lowerCamelCase : Optional[Any]					 =				b, a

  while a % b != 0:
    __lowerCamelCase ,__lowerCamelCase : str					 =				b, a % b

  return b

def  a_  (							_lowerCAmelCase ,_lowerCAmelCase )   ->   tuple[int, int, int]:
  assert a >= 0 and b >= 0

  if b == 0:
    __lowerCamelCase ,__lowerCamelCase ,__lowerCamelCase : Optional[int]					 =				a, 1, 0
  else:
    ((__lowerCamelCase) ,(__lowerCamelCase) ,(__lowerCamelCase)) : List[str]					 =				extended_gcd(_lowerCAmelCase ,a % b )
    __lowerCamelCase : Tuple					 =				q
    __lowerCamelCase : Any					 =				p - q * (a // b)

  assert a % d == 0 and b % d == 0
  assert d == a * x + b * y

  return (d, x, y)


if __name__ == "__main__":
   from doctest import testmod

   testmod(name='diophantine', verbose=True)
   testmod(name='diophantine_all_soln', verbose=True)
   testmod(name='extended_gcd', verbose=True)
   testmod(name='greatest_common_divisor', verbose=True)











'''simple docstring'''





from __future__ import annotations

# Define the Gravitational Constant G and the function
_UpperCamelCase							       =		6.6_743e-11  # unit of G : m^3 * kg^-1 * s^-2

def  a_  (							_lowerCAmelCase ,_lowerCAmelCase ,_lowerCAmelCase ,_lowerCAmelCase )   ->   dict[str, float]:
  __lowerCamelCase : Dict					 =				mass_a * mass_a

  if (force, mass_a, mass_a, distance).count(0 ) != 1:
    raise ValueError('One and only one argument must be 0' )
  if force < 0:
    raise ValueError('Gravitational force can not be negative' )
  if distance < 0:
    raise ValueError('Distance can not be negative' )
  if mass_a < 0 or mass_a < 0:
    raise ValueError('Mass can not be negative' )
  if force == 0:
    __lowerCamelCase : Optional[Any]					 =				GRAVITATIONAL_CONSTANT * product_of_mass / (distance**2)
    return {"force": force}
  elif mass_a == 0:
    __lowerCamelCase : Tuple					 =				(force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
    return {"mass_1": mass_a}
  elif mass_a == 0:
    __lowerCamelCase : str					 =				(force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
    return {"mass_2": mass_a}
  elif distance == 0:
    __lowerCamelCase : int					 =				(GRAVITATIONAL_CONSTANT * product_of_mass / (force)) ** 0.5
    return {"distance": distance}
  raise ValueError('One and only one argument must be 0' )


# Run doctest
if __name__ == "__main__":
   import doctest

   doctest.testmod()






