





import unittest
from timeit import timeit


def 		_SCREAMING_SNAKE_CASE    (   lowerCAmelCase__       ,lowerCAmelCase__	):
		lowerCamelCase_  :    Any   	=			first_num if first_num >= second_num else second_num
		lowerCamelCase_  :    Dict   	=			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__	):
		return b if a == 0 else greatest_common_divisor(b % a       ,lowerCAmelCase__	)


def 		_SCREAMING_SNAKE_CASE    (   lowerCAmelCase__       ,lowerCAmelCase__	):
		return first_num // greatest_common_divisor(lowerCAmelCase__       ,lowerCAmelCase__	) * second_num


def 		_SCREAMING_SNAKE_CASE    (   ):
		lowerCamelCase_  :    Optional[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=lowerCAmelCase__	)       ,)
		print(
		    'least_common_multiple_fast():'       ,timeit('least_common_multiple_fast(1000, 999)'       ,setup=lowerCAmelCase__	)       ,)






class 	UpperCamelCase_     (     unittest.TestCase       ):
					_a			:	Optional[int]							=				(
					    (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),
					)
					_a			:	Optional[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      __a    (		self    :    Any	):
							for i, (first_num, second_num) in enumerate(self.test_inputs	):
									lowerCamelCase_  :    str   	=			least_common_multiple_slow(lowerCamelCase					,			lowerCamelCase	)
									lowerCamelCase_  :    Dict   	=			least_common_multiple_fast(lowerCamelCase					,			lowerCamelCase	)
									with self.subTest(i=lowerCamelCase	):
											self.assertEqual(lowerCamelCase					,			self.expected_results[i]	)
											self.assertEqual(lowerCamelCase					,			self.expected_results[i]	)


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







from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_flax_available,
    is_sentencepiece_available,
    is_tf_available,
    is_tokenizers_available,
    is_torch_available,
)


_lowercase		:     int 					={
    """configuration_marian""": ["""MARIAN_PRETRAINED_CONFIG_ARCHIVE_MAP""", """MarianConfig""", """MarianOnnxConfig"""],
}

try:
		if not is_sentencepiece_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase		:     Any 					=["""MarianTokenizer"""]

try:
		if not is_torch_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase		:     Any 					=[
		    """MARIAN_PRETRAINED_MODEL_ARCHIVE_LIST""",
		    """MarianForCausalLM""",
		    """MarianModel""",
		    """MarianMTModel""",
		    """MarianPreTrainedModel""",
		]

try:
		if not is_tf_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase		:     Dict 					=["""TFMarianModel""", """TFMarianMTModel""", """TFMarianPreTrainedModel"""]

try:
		if not is_flax_available():
				raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
		pass
else:
		_lowercase		:     Optional[Any] 					=["""FlaxMarianModel""", """FlaxMarianMTModel""", """FlaxMarianPreTrainedModel"""]

if TYPE_CHECKING:
		from .configuration_marian import MARIAN_PRETRAINED_CONFIG_ARCHIVE_MAP, MarianConfig, MarianOnnxConfig

		try:
				if not is_sentencepiece_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .tokenization_marian import MarianTokenizer

		try:
				if not is_torch_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_marian import (
				    MARIAN_PRETRAINED_MODEL_ARCHIVE_LIST,
				    MarianForCausalLM,
				    MarianModel,
				    MarianMTModel,
				    MarianPreTrainedModel,
				)

		try:
				if not is_tf_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_tf_marian import TFMarianModel, TFMarianMTModel, TFMarianPreTrainedModel

		try:
				if not is_flax_available():
						raise OptionalDependencyNotAvailable()
		except OptionalDependencyNotAvailable:
				pass
		else:
				from .modeling_flax_marian import FlaxMarianModel, FlaxMarianMTModel, FlaxMarianPreTrainedModel

else:
		import sys

		_lowercase		:     List[str] 					=_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)
