from __future__ import annotations




def       _snake_case	(   lowerCAmelCase							:   str   , lowerCAmelCase							:   Optional[int]   , lowerCAmelCase							:   Tuple   , lowerCAmelCase							:   Tuple	):  # noqa: E741
		"""simple docstring"""







		while r - l > 1:
				SCREAMING_SNAKE_CASE_  :		str				      =    (l + r) // 2
				if v[m] >= key:
						SCREAMING_SNAKE_CASE_  :		Optional[Any]				      =    m
				else:
						SCREAMING_SNAKE_CASE_  :		Tuple				      =    m  # noqa: E741
		return r




def       _snake_case	(   lowerCAmelCase							:   list[int]	):
		"""simple docstring"""







		if len(lowerCAmelCase	) == 0:
				return 0

		SCREAMING_SNAKE_CASE_  :		Union[str, Any]				      =    [0] * len(lowerCAmelCase	)
		SCREAMING_SNAKE_CASE_  :		str				      =    1

		SCREAMING_SNAKE_CASE_  :		Union[str, Any]				      =    v[0]

		for i in range(1   , len(lowerCAmelCase	)	):
				if v[i] < tail[0]:
						SCREAMING_SNAKE_CASE_  :		int				      =    v[i]
				elif v[i] > tail[length - 1]:
						SCREAMING_SNAKE_CASE_  :		str				      =    v[i]
						length += 1
				else:
						SCREAMING_SNAKE_CASE_  :		Tuple				      =    v[i]

		return length


if __name__ == "__main__":
		import doctest

		doctest.testmod()

def       _snake_case	(   lowerCAmelCase							:   int   , lowerCAmelCase							:   int	):
		"""simple docstring"""







		while b:
				SCREAMING_SNAKE_CASE_      ,    SCREAMING_SNAKE_CASE_  :		int				      =    b, a % b
		return a




def       _snake_case	(   lowerCAmelCase							:   int   , lowerCAmelCase							:   int	):
		"""simple docstring"""







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




def       _snake_case	(   ):
		"""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()
