


def      _lowerCAmelCase  (							lowerCAmelCase_							:Optional[int]							)->Tuple:
   '''simple docstring'''






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



def      _lowerCAmelCase  (							lowerCAmelCase_							:Optional[Any]							)->Any:
   '''simple docstring'''






   if not isinstance(lowerCAmelCase_						,  lowerCAmelCase_							):
      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()

    SCREAMING_SNAKE_CASE		:Any											=       int(input('''Enter a positive integer: ''').strip() or 0)
    print(F'''factorial{n} is {factorial(n)}''')








from .prime_check import Test

Test()




