



"""simple docstring"""






from maths.is_square_free import is_square_free
from maths.prime_factors import prime_factors






def   snake_case__     (	__lowerCamelCase       :					int			):
			"""simple docstring"""
			lowerCamelCase__	:	Optional[Any]				=prime_factors(__lowerCamelCase			)
			if is_square_free(__lowerCamelCase			):
						return -1 if len(__lowerCamelCase			) % 2 else 1
			return 0


if __name__ == "__main__":
		import doctest

		doctest.testmod()









"""simple docstring"""






def   snake_case__     (	__lowerCamelCase       :					list[int]			):
			"""simple docstring"""
			if not numbers:
						return 0

			if not isinstance(__lowerCamelCase							,	(list, tuple)			) or not all(
			    isinstance(__lowerCamelCase							,	__lowerCamelCase			) for number in numbers			):
						raise ValueError('''numbers must be an iterable of integers'''			)

			lowerCamelCase__	:	Any				=numbers[0]

			for i in range(1							,	len(__lowerCamelCase			)			):
						# update the maximum and minimum subarray products
						lowerCamelCase__	:	Dict				=numbers[i]
						if number < 0:
									lowerCamelCase__			,     lowerCamelCase__	:	List[Any]				=min_till_now, max_till_now
						lowerCamelCase__	:	Optional[int]				=max(__lowerCamelCase							,	max_till_now * number			)
						lowerCamelCase__	:	Dict				=min(__lowerCamelCase							,	min_till_now * number			)

						# update the maximum product found till now
						lowerCamelCase__	:	Tuple				=max(__lowerCamelCase							,	__lowerCamelCase			)

			return max_prod




