

'''simple docstring'''






import unittest
from timeit import timeit


def 					__lowerCamelCase			(      SCREAMING_SNAKE_CASE_     :	int  ,  SCREAMING_SNAKE_CASE_     :	int    )							->   int:
      """simple docstring"""

      SCREAMING_SNAKE_CASE_      :			Optional[Any]     =       first_num if first_num >= second_num else second_num
      SCREAMING_SNAKE_CASE_      :			str     =       max_num
      while (common_mult % first_num > 0) or (common_mult % second_num > 0):
            common_mult += max_num
      return common_mult


def 					__lowerCamelCase			(      SCREAMING_SNAKE_CASE_     :	int  ,  SCREAMING_SNAKE_CASE_     :	int    )							->   int:
      """simple docstring"""

      return b if a == 0 else greatest_common_divisor(b % a  ,  SCREAMING_SNAKE_CASE_    )


def 					__lowerCamelCase			(      SCREAMING_SNAKE_CASE_     :	int  ,  SCREAMING_SNAKE_CASE_     :	int    )							->   int:
      """simple docstring"""

      return first_num // greatest_common_divisor(SCREAMING_SNAKE_CASE_  ,  SCREAMING_SNAKE_CASE_    ) * second_num


def 					__lowerCamelCase			(      )							->   Optional[int]:
      """simple docstring"""

      SCREAMING_SNAKE_CASE_      :			List[Any]     =       (
          "from __main__ import least_common_multiple_slow, least_common_multiple_fast"
      )
      print(
          "least_common_multiple_slow():"  ,  timeit("least_common_multiple_slow(1000, 999)"  ,  setup=SCREAMING_SNAKE_CASE_    )  ,  )
      print(
          "least_common_multiple_fast():"  ,  timeit("least_common_multiple_fast(1000, 999)"  ,  setup=SCREAMING_SNAKE_CASE_    )  ,  )
class 	SCREAMING_SNAKE_CASE__			(				unittest.TestCase      ):
    _A			    =							(
        (10, 20),
        (13, 15),
        (4, 31),
        (10, 42),
        (43, 34),
        (5, 12),
        (12, 25),
        (10, 25),
        (6, 9),
    )
    _A			    =							(20, 195, 124, 210, 1_462, 60, 300, 50, 18)




    def   __lowerCamelCase      (					self			):






          """simple docstring"""






          for i, (first_num, second_num) in enumerate(self.test_inputs			):
                SCREAMING_SNAKE_CASE_      :			List[Any]     =       least_common_multiple_slow(lowercase__				,     lowercase__			)
                SCREAMING_SNAKE_CASE_      :			List[str]     =       least_common_multiple_fast(lowercase__				,     lowercase__			)
                with self.subTest(i=lowercase__			):
                      self.assertEqual(lowercase__				,     self.expected_results[i]			)
                      self.assertEqual(lowercase__				,     self.expected_results[i]			)


if __name__ == "__main__":
      benchmark()
      unittest.main()








"""simple docstring"""


from __future__ import annotations





def 							a__	(     _UpperCAmelCase		,   _UpperCAmelCase		,   _UpperCAmelCase		,   )			->     list[float | int]:

 '''simple docstring'''






 if not all((nth_term, start_term_a, common_ratio_r)		):
  return []
 snake_case__										= []
 snake_case__										= 1
 snake_case__										= common_ratio_r
 for _ in range(int(_UpperCAmelCase		)		):
  if not series:
   series.append(_UpperCAmelCase		)
  else:
   power += 1
   series.append(float(start_term_a * multiple		)		)
   snake_case__										= pow(float(_UpperCAmelCase		)		,   _UpperCAmelCase		)
 return series


if __name__ == "__main__":
   import doctest

   doctest.testmod()

   a__    :   int    						= float(input("""Enter the last number (n term) of the Geometric Series"""))
   a__    :   str    						= float(input("""Enter the starting term (a) of the Geometric Series"""))
   a__    :   str    						= float(
       input("""Enter the common ratio between two terms (r) of the Geometric Series""")
   )
   print("""Formula of Geometric Series => a + ar + ar^2 ... +ar^n""")
   print(geometric_series(nth_term, start_term_a, common_ratio_r))

