




def   lowerCAmelCase						(						_lowerCAmelCase							:				int		):




 """simple docstring"""







 if number != int(_lowerCAmelCase		):
  raise ValueError("factorial() only accepts integral values"		)
 if number < 0:
  raise ValueError("factorial() not defined for negative values"		)
 UpperCAmelCase__								=  1
 for i in range(1  ,							number + 1		):
  value *= i
 return value



def   lowerCAmelCase						(						_lowerCAmelCase							:				int		):




 """simple docstring"""







 if not isinstance(_lowerCAmelCase  ,							_lowerCAmelCase		):
  raise ValueError("factorial() only accepts integral values"		)
 if n < 0:
  raise ValueError("factorial() not defined for negative values"		)
 return 1 if n == 0 or n == 1 else n * factorial(n - 1		)


if __name__ == "__main__":
  import doctest

  doctest.testmod()

  _lowerCAmelCase  :				Union[str, Any]						=				int(input("Enter a positive integer: ").strip() or 0)
  print(F'''factorial{n} is {factorial(n)}''')











_lowerCAmelCase  :				dict[str, float]						=				{
    "kilogram": 1,
    "gram": pow(1_0, 3),
    "milligram": pow(1_0, 6),
    "metric-ton": pow(1_0, -3),
    "long-ton": 0.0_0_0_9_8_4_2_0_7_3,
    "short-ton": 0.0_0_1_1_0_2_3_1_2_2,
    "pound": 2.2_0_4_6_2_4_4_2_0_2,
    "stone": 0.1_5_7_4_7_3_1_7_2_8,
    "ounce": 3_5.2_7_3_9_9_0_7_2_3,
    "carrat": 5_0_0_0,
    "atomic-mass-unit": 6.0_22_13_66_52E26,
}

_lowerCAmelCase  :				dict[str, float]						=				{
    "kilogram": 1,
    "gram": pow(1_0, -3),
    "milligram": pow(1_0, -6),
    "metric-ton": pow(1_0, 3),
    "long-ton": 1_0_1_6.0_4_6_0_8,
    "short-ton": 9_0_7.1_8_4,
    "pound": 0.4_5_3_5_9_2,
    "stone": 6.3_5_0_2_9,
    "ounce": 0.0_2_8_3_4_9_5,
    "carrat": 0.0_0_0_2,
    "atomic-mass-unit": 1.6_60_54_01_99E-27,
}



def   lowerCAmelCase						(						_lowerCAmelCase							:				str  ,							_lowerCAmelCase							:				str  ,							_lowerCAmelCase							:				float		):




 """simple docstring"""







 if to_type not in KILOGRAM_CHART or from_type not in WEIGHT_TYPE_CHART:
  UpperCAmelCase__								=  (
      F'''Invalid \'from_type\' or \'to_type\' value: {from_type!r}, {to_type!r}\n'''
      F'''Supported values are: {", ".join(_lowerCAmelCase		)}'''
  )
  raise ValueError(_lowerCAmelCase		)
 return value * KILOGRAM_CHART[to_type] * WEIGHT_TYPE_CHART[from_type]


if __name__ == "__main__":
  import doctest

  doctest.testmod()





