



"""simple docstring"""







from math import pi, sqrt



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



def      __UpperCAmelCase      (    )							->      None:
		assert gamma(0.5	) == sqrt(__lowerCamelCase	)
		assert gamma(1	) == 1.0
		assert gamma(2	) == 1.0


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

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





"""simple docstring"""







def      __UpperCAmelCase      (    __lowerCamelCase						,     __lowerCamelCase	)							->      str:
		if not isinstance(__lowerCamelCase						,     __lowerCamelCase	):
				raise ValueError('''iterations must be defined as integers'''	)
		if not isinstance(__lowerCamelCase						,     __lowerCamelCase	) or not number >= 1:
				raise ValueError(
				    '''starting number must be
                         and integer and be more than 0'''	)
		if not iterations >= 1:
				raise ValueError('''Iterations must be done more than 0 times to play FizzBuzz'''	)

		lowercase__   :    Tuple				=			''''''
		while number <= iterations:
				if number % 3 == 0:
						out += "Fizz"
				if number % 5 == 0:
						out += "Buzz"
				if 0 not in (number % 3, number % 5):
						out += str(__lowerCamelCase	)

				# print(out)
				number += 1
				out += " "
		return out


if __name__ == "__main__":
							import doctest

							doctest.testmod()
