




'''simple docstring'''
import unittest
from timeit import timeit





def  lowerCamelCase(       SCREAMING_SNAKE_CASE_					,SCREAMING_SNAKE_CASE_    )		->		int:
   A_       		=   first_num if first_num >= second_num else second_num
   A_       		=   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_					,SCREAMING_SNAKE_CASE_    )		->		str:
   return b if a == 0 else greatest_common_divisor(b % a					,UpperCamelCase__    )





def  lowerCamelCase(       SCREAMING_SNAKE_CASE_					,SCREAMING_SNAKE_CASE_    )		->		str:
   return first_num // greatest_common_divisor(UpperCamelCase__					,UpperCamelCase__    ) * second_num





def  lowerCamelCase(       )		->		Union[str, Any]:
   A_       		=   (
       '''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      __UpperCAmelCase							(    unittest.TestCase							):



     '''simple docstring'''





     _UpperCamelCase  	=		(
         (10, 20),
         (13, 15),
         (4, 31),
         (10, 42),
         (43, 34),
         (5, 12),
         (12, 25),
         (10, 25),
         (6, 9),
     )
     _UpperCamelCase  	=		(20, 195, 124, 210, 1_462, 60, 300, 50, 18)



     def 						__snake_case	(  self    :	str)						->       Tuple:
        for i, (first_num, second_num) in enumerate(self.test_inputs):
           A_       		=   least_common_multiple_slow(_lowercase			,					_lowercase)
           A_       		=   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'''
def  lowerCamelCase(       SCREAMING_SNAKE_CASE_    )		->		int:

			if not isinstance(SCREAMING_SNAKE_CASE_					,SCREAMING_SNAKE_CASE_    ) or number < 0:
						raise ValueError('Input must be a non-negative integer'    )

			A_       		=   number & ~(number - 1)
			A_       		=   0
			while intermediate:
						intermediate >>= 1
						index += 1
			return index - 1


if __name__ == "__main__":
							import doctest

							doctest.testmod(verbose=True)




