code: 
  
  
  
  
  
  import unittest
  from timeit import timeit
  
  
  
  
  
  
  
  def 	SCREAMING_SNAKE_CASE							(      __lowerCAmelCase      ,					__lowerCAmelCase    )				->			int:
       UpperCamelCase__    :     Tuple        =						first_num if first_num >= second_num else second_num
       UpperCamelCase__    :     List[str]        =						max_num
       while (common_mult % first_num > 0) or (common_mult % second_num > 0):
            common_mult += max_num
       return common_mult
  
  
  
  
  
  
  
  def 	SCREAMING_SNAKE_CASE							(      __lowerCAmelCase      ,					__lowerCAmelCase    )				->			int:
       return b if a == 0 else greatest_common_divisor(b % a      ,					_UpperCamelCase    )
  
  
  
  
  
  
  
  def 	SCREAMING_SNAKE_CASE							(      __lowerCAmelCase      ,					__lowerCAmelCase    )				->			int:
       return first_num // greatest_common_divisor(_UpperCamelCase      ,					_UpperCamelCase    ) * second_num
  
  
  
  
  
  
  
  def 	SCREAMING_SNAKE_CASE							(      )				->			str:
       UpperCamelCase__    :     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=_UpperCamelCase    )      ,					)
       print(
           "least_common_multiple_fast():"      ,					timeit("least_common_multiple_fast(1000, 999)"      ,					setup=_UpperCamelCase    )      ,					)
  
  
  
  
  
  class     __a						(					unittest.TestCase ):
   _lowerCAmelCase : str 				=				(
       (1_0, 2_0),
       (1_3, 1_5),
       (4, 3_1),
       (1_0, 4_2),
       (4_3, 3_4),
       (5, 1_2),
       (1_2, 2_5),
       (1_0, 2_5),
       (6, 9),
   )
   _lowerCAmelCase : int 				=				(2_0, 1_9_5, 1_2_4, 2_1_0, 1_4_6_2, 6_0, 3_0_0, 5_0, 1_8)
  
  
  
  
  
  
  
   def       __lowercase      (	self      :     List[Any]		):
  
  
        '''simple docstring'''
  
  
  
  
  
  
        for i, (first_num, second_num) in enumerate(self.test_inputs		):
             UpperCamelCase__    :     Union[str, Any]        =						least_common_multiple_slow(a_							,     a_		)
             UpperCamelCase__    :     str        =						least_common_multiple_fast(a_							,     a_		)
             with self.subTest(i=a_		):
                  self.assertEqual(a_							,     self.expected_results[i]		)
                  self.assertEqual(a_							,     self.expected_results[i]		)
  
  
  if __name__ == "__main__":
   benchmark()
   unittest.main()
style_context: 
  
  
  
  
  
  
  from __future__ import annotations
  
  
  
  
  
  
  
  def 	SCREAMING_SNAKE_CASE							(      __lowerCAmelCase    )				->			list[int]:
       assert (
           isinstance(__lowerCAmelCase      ,					__lowerCAmelCase    ) and mask > 0
       ), f'mask needs to be positive integer, your input {mask}'
       UpperCamelCase__    :     Any        =						[]
       UpperCamelCase__    :     int        =						mask
  
       while submask:
            all_submasks.append(__lowerCAmelCase    )
            UpperCamelCase__    :     List[str]        =						(submask - 1) & mask
  
       return all_submasks
  
  
  if __name__ == "__main__":
   import doctest
  
   doctest.testmod()