



import unittest
import warnings

from datasets.utils import experimental



@experimental
def        __a     (    )      -> Dict:






						'''simple docstring'''



						return "success"






class 		lowercase						( unittest.TestCase):






	"""simple docstring"""


	def   _SCREAMING_SNAKE_CASE		(	self	:						str     )			-> str:
							with warnings.catch_warnings(record=__UpperCAmelCase     ) as w:
													warnings.simplefilter("""always"""     )
													self.assertEqual(dummy_function()						,  """success"""     )
							self.assertEqual(len(__UpperCAmelCase     )						,  1     )









def        __a     (    lowerCAmelCase_   :					int				)      -> int:






						'''simple docstring'''



						if number != int(lowerCAmelCase_				):
												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        __a     (    lowerCAmelCase_   :					int				)      -> int:






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

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




