





'''simple docstring'''






from functools import lru_cache






@lru_cache
def      __A						(							a_						:  Dict	):

		if num < 0:
				raise ValueError("Number should not be negative."	)

		return 1 if num in (0, 1) else num * factorial(num - 1	)


if __name__ == "__main__":
					import doctest

					doctest.testmod()










'''simple docstring'''






def      __A						(							a_						:  int	):
		if not isinstance(a_      ,a_	):
				lowerCAmelCase     :    Dict						=   f'''Input value of [number={number}] must be an integer'''
				raise TypeError(a_	)
		if number < 0:
				return False
		lowerCAmelCase     :    Dict						=   number * number
		while number > 0:
				if number % 1_0 != number_square % 1_0:
						return False
				number //= 1_0
				number_square //= 1_0
		return True


if __name__ == "__main__":
					import doctest

					doctest.testmod()



