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




def       _UpperCamelCase	(					SCREAMING_SNAKE_CASE__   ,					SCREAMING_SNAKE_CASE__ )     ->       int:


		'''simple docstring'''


		snake_case     :					int     =	first_num if first_num >= second_num else second_num
		snake_case     :					Dict     =	max_num
		while (common_mult % first_num > 0) or (common_mult % second_num > 0):
				common_mult += max_num
		return common_mult




def       _UpperCamelCase	(					SCREAMING_SNAKE_CASE__   ,					SCREAMING_SNAKE_CASE__ )     ->       int:


		'''simple docstring'''


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




def       _UpperCamelCase	(					SCREAMING_SNAKE_CASE__   ,					SCREAMING_SNAKE_CASE__ )     ->       int:


		'''simple docstring'''


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




def       _UpperCamelCase	(					)     ->       Optional[int]:


		'''simple docstring'''


		snake_case     :					int     =	(
		    '''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   snake_case__					(			unittest.TestCase				):







		"""simple docstring"""

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



		def 			lowerCAmelCase							(			self							: Tuple			)	-> List[str]:






				"""simple docstring"""







				for i, (first_num, second_num) in enumerate(self.test_inputs			):
						snake_case     :					str     =	least_common_multiple_slow(UpperCamelCase__     ,  UpperCamelCase__			)
						snake_case     :					Dict     =	least_common_multiple_fast(UpperCamelCase__     ,  UpperCamelCase__			)
						with self.subTest(i=UpperCamelCase__			):
								self.assertEqual(UpperCamelCase__     ,  self.expected_results[i]			)
								self.assertEqual(UpperCamelCase__     ,  self.expected_results[i]			)


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




'''simple docstring'''
def       _UpperCamelCase	(					SCREAMING_SNAKE_CASE__   ,					SCREAMING_SNAKE_CASE__ )     ->       int:


		'''simple docstring'''


		snake_case     :					Optional[Any]     =	0
		for ele in arr:
				total_sum += product_sum(SCREAMING_SNAKE_CASE__   ,					depth + 1 ) if isinstance(SCREAMING_SNAKE_CASE__   ,					SCREAMING_SNAKE_CASE__ ) else ele
		return total_sum * depth




def       _UpperCamelCase	(					SCREAMING_SNAKE_CASE__ )     ->       int:


		'''simple docstring'''


		return product_sum(SCREAMING_SNAKE_CASE__   ,					1 )


if __name__ == "__main__":
						import doctest

						doctest.testmod()


