



def 			lowerCAmelCase__	(					lowerCamelCase_	:	int ,lowerCamelCase_	:	int):





				'''simple docstring'''

				return x if y == 0 else greatest_common_divisor(lowerCamelCase_ ,x % y)






def 			lowerCAmelCase__	(					lowerCamelCase_	:	int ,lowerCamelCase_	:	int):





				'''simple docstring'''

				return (x * y) // greatest_common_divisor(lowerCamelCase_ ,lowerCamelCase_)






def 			lowerCAmelCase__	(					lowerCamelCase_	:	int = 20):





				'''simple docstring'''

				lowerCAmelCase__  :       Any				=  1
				for i in range(1 ,n + 1):
								lowerCAmelCase__  :       List[Any]				=  lcm(lowerCamelCase_ ,lowerCamelCase_)
				return g


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




from collections.abc import Callable

import numpy as np






def 			lowerCAmelCase__	(					lowerCamelCase_	:	Callable ,lowerCamelCase_	:	float ,lowerCamelCase_	:	float ,lowerCamelCase_	:	float ,lowerCamelCase_	:	float):





				'''simple docstring'''

				lowerCAmelCase__  :       Dict				=  int(np.ceil((x_end - xa) / step_size))
				lowerCAmelCase__  :       Any				=  np.zeros((n + 1,))
				lowerCAmelCase__  :       Union[str, Any]				=  ya
				lowerCAmelCase__  :       str				=  xa

				for k in range(lowerCamelCase_):
								lowerCAmelCase__  :       Tuple				=  y[k] + step_size * ode_func(lowerCamelCase_ ,y[k])
								lowerCAmelCase__  :       str				=  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()

