


'''simple docstring'''


def 			__lowerCAmelCase			(__lowerCAmelCase ):
		if number != int(__lowerCAmelCase ):
				raise ValueError("factorial() only accepts integral values" )
		if number < 0:
				raise ValueError("factorial() not defined for negative values" )
		_UpperCAmelCase		:							Optional[Any]             =   1
		for i in range(1   ,			number + 1 ):
				value *= i
		return value






def 			__lowerCAmelCase			(__lowerCAmelCase ):
		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)}''')







'''simple docstring'''


def 			__lowerCAmelCase			(__lowerCAmelCase ):
		return "".join(chr(ord(__lowerCAmelCase ) + 32 ) if "A" <= char <= "Z" else char for char in word )


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

						testmod()



