






from math import asin, atan, cos, radians, sin, sqrt, tan

lowerCamelCase	:							List[Any]				=637_8137.0
lowerCamelCase	:							Any				=635_6752.31_4245
lowerCamelCase	:							Dict				=6378137







def 		SCREAMING_SNAKE_CASE							(					__lowerCAmelCase					,    __lowerCAmelCase					,    __lowerCAmelCase					,    __lowerCAmelCase			) ->	float:
     UpperCamelCase__			:   Optional[int]       				=  (AXIS_A - AXIS_B) / AXIS_A
     UpperCamelCase__			:   Dict       				=  atan((1 - flattening) * tan(radians(__lowerCAmelCase			)			)			)
     UpperCamelCase__			:   List[Any]       				=  atan((1 - flattening) * tan(radians(__lowerCAmelCase			)			)			)
     UpperCamelCase__			:   List[Any]       				=  radians(__lowerCAmelCase			)
     UpperCamelCase__			:   Optional[Any]       				=  radians(__lowerCAmelCase			)
     # Equation
     UpperCamelCase__			:   Union[str, Any]       				=  sin((phi_a - phi_a) / 2			)
     UpperCamelCase__			:   Any       				=  sin((lambda_a - lambda_a) / 2			)
     # Square both values
     sin_sq_phi *= sin_sq_phi
     sin_sq_lambda *= sin_sq_lambda
     UpperCamelCase__			:   Union[str, Any]       				=  sqrt(sin_sq_phi + (cos(__lowerCAmelCase			) * cos(__lowerCAmelCase			) * sin_sq_lambda)			)
     return 2 * RADIUS * asin(__lowerCAmelCase			)


if __name__ == "__main__":
 import doctest

 doctest.testmod()







def 		SCREAMING_SNAKE_CASE							(					__lowerCAmelCase					,    __lowerCAmelCase			) ->	int:
     while b:
          UpperCamelCase__				,     UpperCamelCase__			:   int       				=  b, a % b
     return a







def 		SCREAMING_SNAKE_CASE							(					__lowerCAmelCase					,    __lowerCAmelCase			) ->	int:
     return a if b == 0 else euclidean_gcd_recursive(__lowerCAmelCase					,    a % b			)







def 		SCREAMING_SNAKE_CASE							(					) ->	str:
     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()