"""simple docstring"""






from __future__ import annotations

from collections.abc import Callable


def     UpperCAmelCase__ (       lowerCAmelCase__  :Callable[[int | float], int | float]      ,	lowerCAmelCase__  :int | float      ,	lowerCAmelCase__  :int | float      ,	lowerCAmelCase__  :int = 1_0_0      ,	)				->					float:
      '''simple docstring'''


      lowercase														=			x_start
      lowercase														=			fnc(snake_case__	)
      lowercase														=			0.0
      for _ in range(snake_case__	):
            # Approximates small segments of curve as linear and solve
            # for trapezoidal area
            lowercase														=			(x_end - x_start) / steps + xa
            lowercase														=			fnc(snake_case__	)
            area += abs(fxa + fxa	) * (xa - xa) / 2
            # Increment step
            lowercase														=			xa
            lowercase														=			fxa
      return area


if __name__ == "__main__":


       def     UpperCAmelCase__ (       lowerCAmelCase__  :Tuple	)				->					List[str]:
             '''simple docstring'''


             return x**3 + x**2

       print("""f(x) = x^3 + x^2""")
       print("""The area between the curve, x = -5, x = 5 and the x axis is:""")
       __lowerCAmelCase					: Any        =1_0
       while i <= 1_0_0_0_0_0:
              print(F"""with {i} steps: {trapezoidal_area(f, -5, 5, i)}""")
              i *= 1_0




"""simple docstring"""






from __future__ import annotations

import math


def     UpperCAmelCase__ (       lowerCAmelCase__  :int	)				->					list[int]:
      '''simple docstring'''


      if num <= 0:
            lowercase														=			f'{num}: Invalid input, please enter a positive integer.'
            raise ValueError(lowerCAmelCase__	)

      lowercase														=			[True] * (num + 1)
      lowercase														=			[]
      lowercase														=			2
      lowercase														=			int(math.sqrt(lowerCAmelCase__	)	)

      while start <= end:
            # If start is a prime
            if sieve[start] is True:
                  prime.append(lowerCAmelCase__	)

                  # Set multiples of start be False
                  for i in range(start * start      ,	num + 1      ,	lowerCAmelCase__	):
                        if sieve[i] is True:
                              lowercase														=			False

            start += 1

      for j in range(end + 1      ,	num + 1	):
            if sieve[j] is True:
                  prime.append(lowerCAmelCase__	)

      return prime


if __name__ == "__main__":
       print(prime_sieve(int(input("""Enter a positive integer: """).strip())))



