
"""simple docstring"""


import math






def 						_snake_case				(		snake_case__   :     int     ):

	if 1 < number < 4:
		# 2 and 3 are primes
		return True
	elif number < 2 or number % 2 == 0 or number % 3 == 0:
		# Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
		return False

	# All primes number are in format of 6k +/- 1
	for i in range(5	,      int(math.sqrt(snake_case__     ) + 1     )	,      6     ):
		if number % i == 0 or number % (i + 2) == 0:
			return False
	return True






def 						_snake_case				(		snake_case__   :     int = 1_0001     ):

	try:
		A						   =   int(snake_case__     )
	except (TypeError, ValueError):
		raise TypeError('Parameter nth must be int or castable to int.'     ) from None
	if nth <= 0:
		raise ValueError('Parameter nth must be greater than or equal to one.'     )
	A						   =   []
	A						   =   2
	while len(snake_case__     ) < nth:
		if is_prime(snake_case__     ):
			primes.append(snake_case__     )
			num += 1
		else:
			num += 1
	return primes[len(snake_case__     ) - 1]


if __name__ == "__main__":
		print(F"""{solution() = }""")

"""simple docstring"""


from math import pi, sqrt






def       _snake_case				(		snake_case__   :     float     ):
	if num <= 0:
		raise ValueError('math domain error'     )
	if num > 171.5:
		raise OverflowError('math range error'     )
	elif num - int(snake_case__     ) not in (0, 0.5):
		raise NotImplementedError('num must be an integer or a half-integer'     )
	elif num == 0.5:
		return sqrt(snake_case__     )
	else:
		return 1.0 if num == 1 else (num - 1) * gamma(num - 1     )






def       _snake_case				(		):
	assert gamma(0.5     ) == sqrt(snake_case__     )
	assert gamma(1     ) == 1.0
	assert gamma(2     ) == 1.0


if __name__ == "__main__":
		from doctest import testmod

		testmod()
		_lowercase							   =				1.0
		while num:
				_lowercase							   =				float(input('''Gamma of: '''))
				print(F"""gamma({num}) = {gamma(num)}""")
				print('''\nEnter 0 to exit...''')