
"""simple docstring"""






from typing import TYPE_CHECKING

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


UpperCamelCase_						   =   {
    'configuration_mobilevitv2': [
        'MOBILEVITV2_PRETRAINED_CONFIG_ARCHIVE_MAP',
        'MobileViTV2Config',
        'MobileViTV2OnnxConfig',
    ],
}


try:
      if not is_torch_available():
            raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
      pass
else:
      UpperCamelCase_						   =   [
          '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

      UpperCamelCase_						   =   _LazyModule(__name__, globals()['__file__'], _import_structure, module_spec=__spec__)

"""simple docstring"""






import math
def    UpperCamelCase						(					UpperCAmelCase     )						->bool:

   """simple docstring"""



   if 1 < number < 4:
      # 2 and 3 are primes
      return True
   elif number < 2 or number % 2 == 0 or number % 3 == 0:
      # Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
      return False

   # All primes number are in format of 6k +/- 1
   for i in range(5 ,   int(math.sqrt(UpperCAmelCase     ) + 1     ) ,   6     ):
      if number % i == 0 or number % (i + 2) == 0:
         return False
   return True
def    UpperCamelCase						(					UpperCAmelCase = 600_851_475_143     )						->int:

   """simple docstring"""



   try:
      a_						   =     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."     )
   a_						   =     0
   if is_prime(UpperCAmelCase     ):
      return n
   while n % 2 == 0:
      n //= 2
   if is_prime(UpperCAmelCase     ):
      return n
   for i in range(3 ,   int(math.sqrt(UpperCAmelCase     )     ) + 1 ,   2     ):
      if n % i == 0:
         if is_prime(n // i     ):
            a_						   =     n // i
            break
         elif is_prime(UpperCAmelCase     ):
            a_						   =     i
   return max_number


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