from collections.abc import Callable

import numpy as np



def      __SCREAMING_SNAKE_CASE  ( __UpperCamelCase   :	Callable			,					__UpperCamelCase   :	float			,					__UpperCamelCase   :	float			,					__UpperCamelCase   :	float			,					__UpperCamelCase   :	float     )							-> np.array:







  """simple docstring"""





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

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

  return y


if __name__ == "__main__":
   import doctest

   doctest.testmod()

from math import isqrt



def      __SCREAMING_SNAKE_CASE  ( __UpperCamelCase   :	int     )							-> list[int]:







  """simple docstring"""





  SCREAMING_SNAKE_CASE__      							=				[True] * max_number
  for i in range(2			,					isqrt(max_number - 1     ) + 1     ):
    if is_prime[i]:
      for j in range(i**2			,					__UpperCamelCase			,					__UpperCamelCase     ):
        SCREAMING_SNAKE_CASE__      							=				False

  return [i for i in range(2			,					__UpperCamelCase     ) if is_prime[i]]



def      __SCREAMING_SNAKE_CASE  ( __UpperCamelCase   :	int = 10**8     )							-> int:







  """simple docstring"""





  SCREAMING_SNAKE_CASE__      							=				calculate_prime_numbers(max_number // 2     )

  SCREAMING_SNAKE_CASE__      							=				0
  SCREAMING_SNAKE_CASE__      							=				0
  SCREAMING_SNAKE_CASE__      							=				len(__UpperCamelCase     ) - 1
  while left <= right:
    while prime_numbers[left] * prime_numbers[right] >= max_number:
      right -= 1
    semiprimes_count += right - left + 1
    left += 1

  return semiprimes_count


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