


'''simple docstring'''







from __future__ import annotations

from enum import Enum, unique
from typing import TypeVar

# Create a generic variable that can be 'Enum', or any subclass.
a__  : Tuple				=	TypeVar('T', bound='Enum')
@unique
class  lowercase_					(   a__       ):
    __UpperCAmelCase             =     80
    __UpperCAmelCase             =     70
    __UpperCAmelCase             =     60
    __UpperCAmelCase             =     50
    __UpperCAmelCase             =     40
    __UpperCAmelCase             =     30
    __UpperCAmelCase             =     20
    __UpperCAmelCase             =     10

@unique
class  lowercase_					(   a__       ):
    __UpperCAmelCase             =     24
    __UpperCAmelCase             =     21
    __UpperCAmelCase             =     18
    __UpperCAmelCase             =     15
    __UpperCAmelCase             =     12
    __UpperCAmelCase             =     9
    __UpperCAmelCase             =     6
    __UpperCAmelCase             =     3
    __UpperCAmelCase             =     2
    __UpperCAmelCase             =     1
    __UpperCAmelCase             =     -1
    __UpperCAmelCase             =     -2
    __UpperCAmelCase             =     -3
    __UpperCAmelCase             =     -6
    __UpperCAmelCase             =     -9
    __UpperCAmelCase             =     -12
    __UpperCAmelCase             =     -15
    __UpperCAmelCase             =     -18
    __UpperCAmelCase             =     -21
    __UpperCAmelCase             =     -24


    @classmethod
    def        __a							(					cls   ):
          return {unit.name: unit.value for unit in cls if unit.value > 0}


    @classmethod
    def        __a							(					cls   ):
          return {unit.name: unit.value for unit in cls if unit.value < 0}







def _UpperCamelCase	(					__A   )							->		str:


      '''simple docstring'''



      UpperCamelCase__  =    SIUnit.get_positive() if value > 0 else SIUnit.get_negative()
      for name_prefix, value_prefix in prefixes.items():
            UpperCamelCase__  =    value / (10**value_prefix)
            if numerical_part > 1:
                  return F'''{numerical_part!s} {name_prefix}'''
      return str(__A   )







def _UpperCamelCase	(					__A   )							->		str:


      '''simple docstring'''



      for prefix in BinaryUnit:
            UpperCamelCase__  =    value / (2**prefix.value)
            if numerical_part > 1:
                  return F'''{numerical_part!s} {prefix.name}'''
      return str(__A   )


if __name__ == "__main__":
  import doctest

  doctest.testmod()









'''simple docstring'''







def _UpperCamelCase	(					__A   )							->		int:


      '''simple docstring'''



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







def _UpperCamelCase	(					__A   )							->		int:


      '''simple docstring'''



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





