


import re



def   SCREAMING_SNAKE_CASE__						(							snake_case_	)			->							List[Any]:
				def docstring_decorator(snake_case_	):
								A__     :							List[Any]   				=fn.__doc__
								A__     :							Optional[int]   				=func_doc.split('''\n'''	)
								A__     :							List[Any]   				=0
								while i < len(snake_case_	) and re.search(R'''^\s*Examples?:\s*$''',	lines[i]	) is None:
												i += 1
								if i < len(snake_case_	):
												A__     :							Dict   				=example_docstring
												A__     :							List[str]   				='''\n'''.join(snake_case_	)
								else:
												raise ValueError(
												    f'The function {fn} should have an empty \'Examples:\' in its docstring as placeholder, '
												    f'current docstring is:\n{func_doc}'	)
								A__     :							Union[str, Any]   				=func_doc
								return fn

				return docstring_decorator







def   SCREAMING_SNAKE_CASE__						(							snake_case_	)			->							int:
				if number != int(snake_case_	):
								raise ValueError('''factorial() only accepts integral values'''	)
				if number < 0:
								raise ValueError('''factorial() not defined for negative values'''	)
				A__     :							Union[str, Any]   				=1
				for i in range(1,	number + 1	):
								value *= i
				return value



def   SCREAMING_SNAKE_CASE__						(							snake_case_	)			->							int:
				if not isinstance(snake_case_,	snake_case_	):
								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       :       Any				   =			int(input("Enter a positive integer: ").strip() or 0)
						print(F"factorial{n} is {factorial(n)}")



