






"""simple docstring"""
def 			__UpperCamelCase	(		snake_case__					):
	A_		:						Union[str, Any]	    =   [1]

	A_    ,     A_    ,     A_		:						str	    =   0, 0, 0
	A_		:						List[Any]	    =   ugly_nums[ia] * 2
	A_		:						Union[str, Any]	    =   ugly_nums[ia] * 3
	A_		:						Tuple	    =   ugly_nums[ia] * 5

	for _ in range(1   ,   snake_case__					):
		A_		:						Any	    =   min(snake_case__   ,   snake_case__   ,   snake_case__					)
		ugly_nums.append(snake_case__					)
		if next_num == next_a:
			ia += 1
			A_		:						Any	    =   ugly_nums[ia] * 2
		if next_num == next_a:
			ia += 1
			A_		:						Any	    =   ugly_nums[ia] * 3
		if next_num == next_a:
			ia += 1
			A_		:						Any	    =   ugly_nums[ia] * 5
	return ugly_nums[-1]


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

							testmod(verbose=True)
							print(F'{ugly_numbers(200) = }')









"""simple docstring"""
from maths.is_square_free import is_square_free
from maths.prime_factors import prime_factors






def 			__UpperCamelCase	(		snake_case__					):
	A_		:						List[str]	    =   prime_factors(snake_case__					)
	if is_square_free(snake_case__					):
		return -1 if len(snake_case__					) % 2 else 1
	return 0


if __name__ == "__main__":
							import doctest

							doctest.testmod()

