'''simple docstring'''

from hashlib import mda, shaaaa

_A      :				Optional[int] 				=    (shaaaa, mda)







class     _lowercase					:


 '''simple docstring'''






 def __init__(				self       :     List[Any]				,	SCREAMING_SNAKE_CASE__       :     int = 8							)  ->   None:
  __lowerCAmelCase    							=						0B0
  __lowerCAmelCase    							=						size
 def a (				self       :     Dict				,	SCREAMING_SNAKE_CASE__       :     str							)  ->   None:
  __lowerCAmelCase    							=						self.hash_(SCREAMING_SNAKE_CASE__							)
  self.bitarray |= h
 def a (				self       :     Optional[int]				,	SCREAMING_SNAKE_CASE__       :     str							)  ->   bool:
  __lowerCAmelCase    							=						self.hash_(SCREAMING_SNAKE_CASE__							)
  return (h & self.bitarray) == h
 def __contains__(				self       :     List[Any]				,	SCREAMING_SNAKE_CASE__       :     str							)  ->   bool:
  return self.exists(SCREAMING_SNAKE_CASE__							)
 def a (				self       :     Union[str, Any]				,	SCREAMING_SNAKE_CASE__       :     int							)  ->   str:
  __lowerCAmelCase    							=						bin(SCREAMING_SNAKE_CASE__							)[2:]
  return res.zfill(self.size							)
 @property
 def a (				self       :     List[Any]							)  ->   str:
  return self.format_bin(self.bitarray							)
 def a (				self       :     List[str]				,	SCREAMING_SNAKE_CASE__       :     str							)  ->   int:
  __lowerCAmelCase    							=						0B0
  for func in HASH_FUNCTIONS:
   __lowerCAmelCase    							=						(
       int.from_bytes(func(value.encode()							).digest()				,	"""little"""							) % self.size
   )
   res |= 2**position
  return res
 def a (				self       :     Optional[int]				,	SCREAMING_SNAKE_CASE__       :     str							)  ->   str:
  return self.format_bin(self.hash_(SCREAMING_SNAKE_CASE__							)							)





 @property
 def a (				self       :     Dict							)  ->   float:
  __lowerCAmelCase    							=						bin(self.bitarray							).count("""1"""							)
  return (n_ones / self.size) ** len(SCREAMING_SNAKE_CASE__							)







'''simple docstring'''

def 					UpperCamelCase_						( snake_case_	:	int				) ->					int:






 '''simple docstring'''

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







def 					UpperCamelCase_						( snake_case_	:	int				) ->					int:






 '''simple docstring'''

 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()

 _A      :				List[Any] 				=    int(input('''Enter a positive integer: ''').strip() or 0)
 print(f'factorial{n} is {factorial(n)}')






