



def      lowerCAmelCase__		(   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__					:    Tuple												=					numbers[0]

				for i in range(1	,len(lowerCamelCase_)):
								# update the maximum and minimum subarray products
								lowerCAmelCase__					:    Any												=					numbers[i]
								if number < 0:
												lowerCAmelCase__						,		lowerCAmelCase__					:    str												=					min_till_now, max_till_now
								lowerCAmelCase__					:    Any												=					max(lowerCamelCase_	,max_till_now * number)
								lowerCAmelCase__					:    Any												=					min(lowerCamelCase_	,min_till_now * number)

								# update the maximum product found till now
								lowerCAmelCase__					:    Optional[int]												=					max(lowerCamelCase_	,lowerCamelCase_)

				return max_prod






def      lowerCAmelCase__		(   lowerCamelCase_		:		int	,lowerCamelCase_		:		int):





				'''simple docstring'''

				while b:
								lowerCAmelCase__						,		lowerCAmelCase__					:    Optional[Any]												=					b, a % b
				return a






def      lowerCAmelCase__		(   lowerCamelCase_		:		int	,lowerCamelCase_		:		int):





				'''simple docstring'''

				return a if b == 0 else euclidean_gcd_recursive(lowerCamelCase_	,a % b)






def      lowerCAmelCase__		(   ):





				'''simple docstring'''

				print(f"""euclidean_gcd(3, 5) = {euclidean_gcd(3	,5)}""")
				print(f"""euclidean_gcd(5, 3) = {euclidean_gcd(5	,3)}""")
				print(f"""euclidean_gcd(1, 3) = {euclidean_gcd(1	,3)}""")
				print(f"""euclidean_gcd(3, 6) = {euclidean_gcd(3	,6)}""")
				print(f"""euclidean_gcd(6, 3) = {euclidean_gcd(6	,3)}""")

				print(f"""euclidean_gcd_recursive(3, 5) = {euclidean_gcd_recursive(3	,5)}""")
				print(f"""euclidean_gcd_recursive(5, 3) = {euclidean_gcd_recursive(5	,3)}""")
				print(f"""euclidean_gcd_recursive(1, 3) = {euclidean_gcd_recursive(1	,3)}""")
				print(f"""euclidean_gcd_recursive(3, 6) = {euclidean_gcd_recursive(3	,6)}""")
				print(f"""euclidean_gcd_recursive(6, 3) = {euclidean_gcd_recursive(6	,3)}""")


if __name__ == "__main__":
							main()

