






from collections.abc import Callable

import numpy as np






def 						a    (		lowerCamelCase_	,     lowerCamelCase_	,     lowerCamelCase_	,     lowerCamelCase_	,     lowerCamelCase_       ):






				'''simple docstring'''
				lowercase__     				=    int(np.ceil((x_end - xa) / step_size       )       )
				lowercase__     				=    np.zeros((n + 1,)       )
				lowercase__     				=    ya
				lowercase__     				=    xa

				for k in range(lowerCamelCase_       ):
								lowercase__     				=    y[k] + step_size * ode_func(lowerCamelCase_	,     y[k]       )
								lowercase__     				=    y[k] + (
								    (step_size / 2) * (ode_func(lowerCamelCase_	,     y[k]       ) + ode_func(x + step_size	,     lowerCamelCase_       ))
								)
								x += step_size

				return y


if __name__ == "__main__":
							import doctest

							doctest.testmod()












def 						a    (		lowerCamelCase_	,     lowerCamelCase_	,     lowerCamelCase_       ):






				'''simple docstring'''

				if exponent == 1:
								return base
				if exponent % 2 == 0:
								lowercase__     				=    _modexpt(lowerCamelCase_	,     exponent // 2	,     lowerCamelCase_       ) % modulo_value
								return (x * x) % modulo_value
				else:
								return (base * _modexpt(lowerCamelCase_	,     exponent - 1	,     lowerCamelCase_       )) % modulo_value






def 						a    (		lowerCamelCase_ = 1777	,     lowerCamelCase_ = 1855	,     lowerCamelCase_ = 8       ):






				'''simple docstring'''
				lowercase__     				=    base
				for _ in range(1	,     lowerCamelCase_       ):
								lowercase__     				=    _modexpt(lowerCamelCase_	,     lowerCamelCase_	,     10**digits       )

				return result


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




