



from __future__ import annotations

from collections.abc import Callable



def  lowercase    (				SCREAMING_SNAKE_CASE__    :		Callable[[int | float], int | float]			,    SCREAMING_SNAKE_CASE__    :		int | float			,    SCREAMING_SNAKE_CASE__    :		int | float			,    SCREAMING_SNAKE_CASE__    :		int = 100			,    )					->       Any:
 _snake_case      :					str					=   x_start
 _snake_case      :					List[Any]					=   fnc(SCREAMING_SNAKE_CASE__			)
 _snake_case      :					Dict					=   0.0

 for _ in range(SCREAMING_SNAKE_CASE__			):
  # Approximates small segments of curve as linear and solve
  # for trapezoidal area
  _snake_case      :					List[str]					=   (x_end - x_start) / steps + xa
  _snake_case      :					int					=   fnc(SCREAMING_SNAKE_CASE__			)
  area += abs(fxa + fxa			) * (xa - xa) / 2

  # Increment step
  _snake_case      :					int					=   xa
  _snake_case      :					Optional[Any]					=   fxa
 return area


if __name__ == "__main__":



 def  lowercase    (				SCREAMING_SNAKE_CASE__    :		int			)					->       Union[str, Any]:
  return x**3

 print("""f(x) = x^3""")
 print("""The area between the curve, x = -10, x = 10 and the x axis is:""")
 a__      =		10
 while i <= 10_00_00:
  a__      =		trapezoidal_area(f, -5, 5, i)
  print(F'''with {i} steps: {area}''')
  i *= 10





def  lowercase    (				SCREAMING_SNAKE_CASE__    :		int			)					->       int:
 if not isinstance(SCREAMING_SNAKE_CASE__			,    SCREAMING_SNAKE_CASE__			):
  raise TypeError("""recursive_lucas_number accepts only integer arguments."""			)
 if n_th_number == 0:
  return 2
 if n_th_number == 1:
  return 1

 return recursive_lucas_number(n_th_number - 1			) + recursive_lucas_number(
     n_th_number - 2			)



def  lowercase    (				SCREAMING_SNAKE_CASE__    :		int			)					->       int:
 if not isinstance(SCREAMING_SNAKE_CASE__			,    SCREAMING_SNAKE_CASE__			):
  raise TypeError("""dynamic_lucas_number accepts only integer arguments."""			)
 _snake_case		,      _snake_case      :					Any					=   2, 1
 for _ in range(SCREAMING_SNAKE_CASE__			):
  _snake_case		,      _snake_case      :					Union[str, Any]					=   b, a + b
 return a


if __name__ == "__main__":
  from doctest import testmod

  testmod()
  a__      =		int(input("""Enter the number of terms in lucas series:\n""").strip())
  print("""Using recursive function to calculate lucas series:""")
  print(""" """.join(str(recursive_lucas_number(i)) for i in range(n)))
  print("""\nUsing dynamic function to calculate lucas series:""")
  print(""" """.join(str(dynamic_lucas_number(i)) for i in range(n)))
