


__lowerCamelCase       :       int				   =			{hex(i)[2:]: i for i in range(16)}  # Use [:2] to strip off the leading '0x'



def   SCREAMING_SNAKE_CASE__						(							snake_case_	)			->							int:
				A__     :							List[Any]   				=hex_string.strip().lower()
				if not hex_string:
								raise ValueError('''Empty string was passed to the function'''	)
				A__     :							List[str]   				=hex_string[0] == '''-'''
				if is_negative:
								A__     :							Any   				=hex_string[1:]
				if not all(char in hex_table for char in hex_string	):
								raise ValueError('''Non-hexadecimal value was passed to the function'''	)
				A__     :							str   				=0
				for char in hex_string:
								A__     :							Optional[int]   				=1_6 * decimal_number + hex_table[char]
				return -decimal_number if is_negative else decimal_number


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

						testmod()







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)}")



