

"""simple docstring"""




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

from .haversine_distance import haversine_distance

A_				:      Tuple           =			6_37_81_37.0
A_				:      int           =			6_35_67_52.31_42_45
A_				:      Any           =			6_378_137

def 						A							(  snake_case__		,					snake_case__		,					snake_case__		,					snake_case__     ):




			'''simple docstring'''


			SCREAMING_SNAKE_CASE__										=   (AXIS_A - AXIS_B) / AXIS_A
			# Parametric latitudes
			# https://en.wikipedia.org/wiki/Latitude#Parametric_(or_reduced)_latitude
			SCREAMING_SNAKE_CASE__										=   atan((1 - flattening) * tan(radians(snake_case__     )     )     )
			SCREAMING_SNAKE_CASE__										=   atan((1 - flattening) * tan(radians(snake_case__     )     )     )

			# Compute central angle between two points
			# using haversine theta. sigma =  haversine_distance / equatorial radius
			SCREAMING_SNAKE_CASE__										=   haversine_distance(snake_case__		,					snake_case__		,					snake_case__		,					snake_case__     ) / EQUATORIAL_RADIUS

			# Intermediate P and Q values
			SCREAMING_SNAKE_CASE__										=   (b_lata + b_lata) / 2
			SCREAMING_SNAKE_CASE__										=   (b_lata - b_lata) / 2

			# Intermediate X value
			# X = (sigma - sin(sigma)) * sin^2Pcos^2Q / cos^2(sigma/2)
			SCREAMING_SNAKE_CASE__										=   (sin(snake_case__     ) ** 2) * (cos(snake_case__     ) ** 2)
			SCREAMING_SNAKE_CASE__										=   cos(sigma / 2     ) ** 2
			SCREAMING_SNAKE_CASE__										=   (sigma - sin(snake_case__     )) * (x_numerator / x_demonimator)

			# Intermediate Y value
			# Y = (sigma + sin(sigma)) * cos^2Psin^2Q / sin^2(sigma/2)
			SCREAMING_SNAKE_CASE__										=   (cos(snake_case__     ) ** 2) * (sin(snake_case__     ) ** 2)
			SCREAMING_SNAKE_CASE__										=   sin(sigma / 2     ) ** 2
			SCREAMING_SNAKE_CASE__										=   (sigma + sin(snake_case__     )) * (y_numerator / y_denominator)

			return EQUATORIAL_RADIUS * (sigma - ((flattening / 2) * (x_value + y_value)))


if __name__ == "__main__":
						import doctest

						doctest.testmod()





"""simple docstring"""




def 						A							(  snake_case__     ):




			'''simple docstring'''


			SCREAMING_SNAKE_CASE__										=   1
			SCREAMING_SNAKE_CASE__										=   2
			while i * i <= n:
						SCREAMING_SNAKE_CASE__										=   0
						while n % i == 0:
									n //= i
									multiplicity += 1
						n_divisors *= multiplicity + 1
						i += 1
			if n > 1:
						n_divisors *= 2
			return n_divisors

def 						A							(  ):




			'''simple docstring'''


			SCREAMING_SNAKE_CASE__										=   1
			SCREAMING_SNAKE_CASE__										=   1

			while True:
						i += 1
						t_num += i

						if count_divisors(snake_case__     ) > 5_00:
									break

			return t_num


if __name__ == "__main__":
						print(solution())


