




import math

def 			_SCREAMING_SNAKE_CASE			(							lowercase	:       int     ):


      '''simple docstring'''



      if not isinstance(lowercase	,							lowercase     ):
            lowerCamelCase_		     =    f"""Input value of [number={number}] must be an integer"""
            raise TypeError(lowercase     )

      if number < 1:
            lowerCamelCase_		     =    f"""Input value of [number={number}] must be > 0"""
            raise ValueError(lowercase     )
      elif number == 1:
            return 3
      elif number == 2:
            return 5
      else:
            lowerCamelCase_		     =    int(math.log(number // 3	,							2     )     ) + 2

            lowerCamelCase_		     =    [3, 5]
            lowerCamelCase_		     =    2
            lowerCamelCase_		     =    3
            for block in range(1	,							lowercase     ):
                  for _ in range(lowercase     ):
                        proth_list.append(2 ** (block + 1) + proth_list[proth_index - 1]     )
                        proth_index += 1
                  increment *= 2

      return proth_list[number - 1]


if __name__ == "__main__":
 import doctest

 doctest.testmod()

 for number in range(11):
  lowerCamelCase				:		List[Any]     =   0
  try:
   lowerCamelCase				:		Optional[Any]     =   proth(number)
  except ValueError:
   print(F"""ValueError: there is no {number}th Proth number""")
   continue

  print(F"""The {number}th Proth number: {value}""")









from collections.abc import Callable

import numpy as np

def 			_SCREAMING_SNAKE_CASE			(							lowercase	:       Callable	,							lowercase	:       float	,							lowercase	:       float	,							lowercase	:       float	,							lowercase	:       float     ):


      '''simple docstring'''



      lowerCamelCase_		     =    int(np.ceil((x_end - xa) / step_size     )     )
      lowerCamelCase_		     =    np.zeros((n + 1,)     )
      lowerCamelCase_		     =    ya
      lowerCamelCase_		     =    xa

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

      return y


if __name__ == "__main__":
 import doctest

 doctest.testmod()



