


from collections.abc import Callable

import numpy as np







def 	SCREAMING_SNAKE_CASE_						(      __A			:      Callable  ,   __A			:      float  ,   __A			:      float  ,   __A			:      float  ,   __A			:      float    )     ->		Tuple:
       a_ :		Union[str, Any]							=  int(np.ceil((x_end - xa) / step_size    )    )
       a_ :		Any							=  np.zeros((n + 1,)    )
       a_ :		Optional[Any]							=  ya
       a_ :		Optional[int]							=  xa

       for k in range(__lowerCAmelCase    ):
              a_ :		int							=  y[k] + step_size * ode_func(__lowerCAmelCase  ,   y[k]    )
              a_ :		Any							=  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 	SCREAMING_SNAKE_CASE_						(      __A			:      int    )     ->		int:

       """simple docstring"""

       if not isinstance(__A  ,   __A    ):
              raise ValueError('Input must be an integer'    )
       if input_num <= 0:
              raise ValueError('Input must be positive'    )
       return sum(
           divisor for divisor in range(1  ,   input_num // 2 + 1    ) if input_num % divisor == 0    )


if __name__ == "__main__":
   import doctest

   doctest.testmod()


