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


def     UpperCamelCase      (					__lowerCamelCase  :				int					):
							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							= int(input("""Enter a positive integer: """).strip() or 0)
			print(F'factorial{n} is {factorial(n)}')







def     UpperCamelCase      (					__lowerCamelCase  :				list       ,      __lowerCamelCase  :				list       ,      __lowerCamelCase  :				list       ,      __lowerCamelCase  :				int       ,      __lowerCamelCase  :				int					):
       if target == 0:
              answer.append(path.copy()					)
       else:
              for index in range(__lowerCamelCase       ,      len(__lowerCamelCase					)					):
                     if target >= candidates[index]:
                            path.append(candidates[index]					)
                            backtrack(__lowerCamelCase       ,      __lowerCamelCase       ,      __lowerCamelCase       ,      target - candidates[index]       ,      __lowerCamelCase					)
                            path.pop(len(__lowerCamelCase					) - 1					)


def     UpperCamelCase      (					__lowerCamelCase  :				list       ,      __lowerCamelCase  :				int					):
       snake_case :     Optional[Any]           =   []  # type: list[int]
       snake_case :     Tuple           =   []  # type: list[int]
       backtrack(__lowerCamelCase       ,      __lowerCamelCase       ,      __lowerCamelCase       ,      __lowerCamelCase       ,      0					)
       return answer


def     UpperCamelCase      (					):
       print(combination_sum([-8, 2.3, 0]       ,      1					)					)


if __name__ == "__main__":
   import doctest

   doctest.testmod()
   main()





