



'''simple docstring'''

from __future__ import annotations

from collections.abc import Callable






def 		_snake_case		(					_SCREAMING_SNAKE_CASE     :						Callable[[int | float], int | float]							,		_SCREAMING_SNAKE_CASE     :						int | float							,		_SCREAMING_SNAKE_CASE     :						int | float							,		_SCREAMING_SNAKE_CASE     :						int = 100							,		)			->						float:







	"""simple docstring"""
	lowerCAmelCase    =	x_start
	lowerCAmelCase    =	fnc(_SCREAMING_SNAKE_CASE							)
	lowerCAmelCase    =	0.0

	for _ in range(_SCREAMING_SNAKE_CASE							):
		# Approximates small segments of curve as linear and solve
		# for trapezoidal area
		lowerCAmelCase    =	(x_end - x_start) / steps + xa
		lowerCAmelCase    =	fnc(_SCREAMING_SNAKE_CASE							)
		area += abs(fxa + fxa							) * (xa - xa) / 2

		# Increment step
		lowerCAmelCase    =	xa
		lowerCAmelCase    =	fxa
	return area


if __name__ == "__main__":






				def 		_snake_case		(					_SCREAMING_SNAKE_CASE     :						str							)			->						Dict:







					"""simple docstring"""
					return x**3

				print('f(x) = x^3')
				print('The area between the curve, x = -10, x = 10 and the x axis is:')
				UpperCAmelCase			=    10
				while i <= 10_0000:
								UpperCAmelCase			=    trapezoidal_area(f, -5, 5, i)
								print(F'''with {i} steps: {area}''')
								i *= 10




'''simple docstring'''

def 		_snake_case		(					_SCREAMING_SNAKE_CASE     :						int = 4_000_000							)			->						int:







	"""simple docstring"""
	lowerCAmelCase    =	1
	lowerCAmelCase    =	2
	lowerCAmelCase    =	0
	while j <= n:
		if j % 2 == 0:
			total += j
		lowerCAmelCase,   lowerCAmelCase    =	j, i + j

	return total


if __name__ == "__main__":
				print(F'''{solution() = }''')