






"""simple docstring"""

import math
from decimal import Decimal, getcontext

def 	__lowerCamelCase			(						__UpperCamelCase = 4000000 )		->					int:

		"""simple docstring"""







		try:
				lowerCAmelCase_     :							List[Any]             =    int(__UpperCamelCase )
		except (TypeError, ValueError):
				raise TypeError("Parameter n must be int or castable to int." )
		if n <= 0:
				raise ValueError("Parameter n must be greater than or equal to one." )
		lowerCAmelCase_     :							Union[str, Any]             =    100
		lowerCAmelCase_     :							str             =    (Decimal(5 ) ** Decimal(0.5 ) + 1) / Decimal(2 )

		lowerCAmelCase_     :							Tuple             =    (math.floor(math.log(n * (phi + 2)   , __UpperCamelCase ) - 1 ) // 3) * 3 + 2
		lowerCAmelCase_     :							List[Any]             =    Decimal(round(phi ** Decimal(index + 1 ) ) ) / (phi + 2)
		lowerCAmelCase_     :							Dict             =    num // 2
		return int(__UpperCamelCase )


if __name__ == "__main__":
					print(F"""{solution() = }""")








"""simple docstring"""

from typing import TYPE_CHECKING

from ...utils import (
    OptionalDependencyNotAvailable,
    _LazyModule,
    is_torch_available,
    is_vision_available,
)


lowercase__      =				{
    """configuration_mobilevitv2""": [
        """MOBILEVITV2_PRETRAINED_CONFIG_ARCHIVE_MAP""",
        """MobileViTV2Config""",
        """MobileViTV2OnnxConfig""",
    ],
}


try:
					if not is_torch_available():
										raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
					pass
else:
					lowercase__      =				[
					    """MOBILEVITV2_PRETRAINED_MODEL_ARCHIVE_LIST""",
					    """MobileViTV2ForImageClassification""",
					    """MobileViTV2ForSemanticSegmentation""",
					    """MobileViTV2Model""",
					    """MobileViTV2PreTrainedModel""",
					]

if TYPE_CHECKING:
					from .configuration_mobilevitva import (
					    MOBILEVITV2_PRETRAINED_CONFIG_ARCHIVE_MAP,
					    MobileViTVaConfig,
					    MobileViTVaOnnxConfig,
					)

					try:
										if not is_torch_available():
															raise OptionalDependencyNotAvailable()
					except OptionalDependencyNotAvailable:
										pass
					else:
										from .modeling_mobilevitva import (
										    MOBILEVITV2_PRETRAINED_MODEL_ARCHIVE_LIST,
										    MobileViTVaForImageClassification,
										    MobileViTVaForSemanticSegmentation,
										    MobileViTVaModel,
										    MobileViTVaPreTrainedModel,
										)

else:
					import sys

					lowercase__      =				_LazyModule(__name__, globals()["""__file__"""], _import_structure, module_spec=__spec__)
