




'''simple docstring'''






from __future__ import annotations

import math
from collections.abc import Callable


def  _snake_case       (					A			,   A			,   A			,   A = 100			,   )						->   float:
							lowerCAmelCase__	       =     x_start
							lowerCAmelCase__	       =     fnc(A	)
							lowerCAmelCase__	       =     0.0

							for _ in range(A	):
														# Approximates curve as a sequence of linear lines and sums their length
														lowerCAmelCase__	       =     (x_end - x_start) / steps + xa
														lowerCAmelCase__	       =     fnc(A	)
														length += math.hypot(xa - xa			,   fxa - fxa	)

														# Increment step
														lowerCAmelCase__	       =     xa
														lowerCAmelCase__	       =     fxa

							return length


if __name__ == "__main__":


		def  _snake_case       (					A	)						->   List[Any]:
									return math.sin(10 * x	)

		print('''f(x) = sin(10 * x)''')
		print('''The length of the curve from x = -10 to x = 10 is:''')
		__UpperCAmelCase       =							10
		while i <= 100_000:
				print(f"""With {i} steps: {line_length(f, -10, 10, i)}""")
				i *= 10



'''simple docstring'''






def  _snake_case       (					A = 10	)						->   str:
							if not isinstance(A			,   A	) or n < 0:
														raise ValueError('''Invalid input'''	)
							lowerCAmelCase__	       =     10**n
							lowerCAmelCase__	       =     28433 * (pow(2			,   7830457			,   A	)) + 1
							return str(number % modulus	)


if __name__ == "__main__":
		from doctest import testmod

		testmod()
		print(f"""{solution(10) = }""")