





"""simple docstring"""


from __future__ import annotations

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





def 							a__     (					_UpperCAmelCase		,       _UpperCAmelCase		,       _UpperCAmelCase		,       _UpperCAmelCase		)      ->					dict[str, float]:

 '''simple docstring'''






 snake_case__      							=			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:
  snake_case__      							=			GRAVITATIONAL_CONSTANT * product_of_mass / (distance**2)
  return {"force": force}
 elif mass_a == 0:
  snake_case__      							=			(force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
  return {"mass_1": mass_a}
 elif mass_a == 0:
  snake_case__      							=			(force) * (distance**2) / (GRAVITATIONAL_CONSTANT * mass_a)
  return {"mass_2": mass_a}
 elif distance == 0:
  snake_case__      							=			(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()








"""simple docstring"""


import math





def 							a__     (					_UpperCAmelCase		)      ->					list:

 '''simple docstring'''






 if n <= 0:
  raise ValueError("Only positive integers have prime factors"		)
 snake_case__      							=			[]
 while n % 2 == 0:
  pf.append(2		)
  snake_case__      							=			int(n / 2		)
 for i in range(3		,       int(math.sqrt(_UpperCAmelCase		)		) + 1		,       2		):
  while n % i == 0:
   pf.append(_UpperCAmelCase		)
   snake_case__      							=			int(n / i		)
 if n > 2:
  pf.append(_UpperCAmelCase		)
 return pf





def 							a__     (					_UpperCAmelCase		)      ->					int:

 '''simple docstring'''






 if n <= 0:
  raise ValueError("Only positive numbers are accepted"		)
 snake_case__      							=			1
 snake_case__      							=			1
 while n % 2 == 0:
  temp += 1
  snake_case__      							=			int(n / 2		)
 div *= temp
 for i in range(3		,       int(math.sqrt(_UpperCAmelCase		)		) + 1		,       2		):
  snake_case__      							=			1
  while n % i == 0:
   temp += 1
   snake_case__      							=			int(n / i		)
  div *= temp
 if n > 1:
  div *= 2
 return div





def 							a__     (					_UpperCAmelCase		)      ->					int:

 '''simple docstring'''






 if n <= 0:
  raise ValueError("Only positive numbers are accepted"		)
 snake_case__      							=			1
 snake_case__      							=			1
 while n % 2 == 0:
  temp += 1
  snake_case__      							=			int(n / 2		)
 if temp > 1:
  s *= (2**temp - 1) / (2 - 1)
 for i in range(3		,       int(math.sqrt(_UpperCAmelCase		)		) + 1		,       2		):
  snake_case__      							=			1
  while n % i == 0:
   temp += 1
   snake_case__      							=			int(n / i		)
  if temp > 1:
   s *= (i**temp - 1) / (i - 1)
 return int(_UpperCAmelCase		)





def 							a__     (					_UpperCAmelCase		)      ->					int:

 '''simple docstring'''






 snake_case__      							=			n
 for x in set(prime_factors(_UpperCAmelCase		)		):
  s *= (x - 1) / x
 return int(_UpperCAmelCase		)


if __name__ == "__main__":
   import doctest

   doctest.testmod()

