




import unittest
from timeit import timeit







def 			lowerCAmelCase  (     UpperCAmelCase,     UpperCAmelCase	)  ->int:






					"""simple docstring"""






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







def 			lowerCAmelCase  (     UpperCAmelCase,     UpperCAmelCase	)  ->int:






					"""simple docstring"""






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







def 			lowerCAmelCase  (     UpperCAmelCase,     UpperCAmelCase	)  ->int:






					"""simple docstring"""






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







def 			lowerCAmelCase  (     )  ->str:






					"""simple docstring"""






					__magic_name__ :							str		       =							(
					    '''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__		:			int       =(
	    (10, 20),
	    (13, 15),
	    (4, 31),
	    (10, 42),
	    (43, 34),
	    (5, 12),
	    (12, 25),
	    (10, 25),
	    (6, 9),
	)
	lowerCamelCase__		:			int       =(20, 195, 124, 210, 1_462, 60, 300, 50, 18)






	def 			lowercase				(     self						)				->       Optional[Any]:




						"""simple docstring"""






						for i, (first_num, second_num) in enumerate(self.test_inputs						):
											__magic_name__ :							int		       =							least_common_multiple_slow(lowercase_    ,					lowercase_						)
											__magic_name__ :							int		       =							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()









from ..utils import requires_backends


lowercase_		=							None





class 		A__    :






	def __init__(     self    ,					*lowerCamelCase    ,					**lowerCamelCase						)				->       Optional[Any]:




						"""simple docstring"""






						requires_backends(self    ,					['''detectron2''']						)






	@classmethod
	def 			lowercase				(     cls    ,					*lowerCamelCase    ,					**lowerCamelCase						)				->       List[Any]:




						"""simple docstring"""






						requires_backends(cls    ,					['''detectron2''']						)



