




def 					SCREAMING_SNAKE_CASE	(       __UpperCamelCase			:						Union[str, Any]       ,     __UpperCamelCase			:						List[Any]      )  ->							Optional[int]:
    UpperCAmelCase_							 =     1
    while b > 0:
        if b & 1:
            res *= a

        a *= a
        b >>= 1

    return res




def 					SCREAMING_SNAKE_CASE	(       __UpperCamelCase			:						Any       ,     __UpperCamelCase			:						Union[str, Any]       ,     __UpperCamelCase			:						Union[str, Any]      )  ->							int:
    UpperCAmelCase_							 =     1
    while b > 0:
        if b & 1:
            UpperCAmelCase_							 =     ((res % c) * (a % c)) % c

        a *= a
        b >>= 1

    return res












"""simple docstring"""





import math




def 		lowerCAmelCase_	(  lowercase_   :							int		):

 '''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(lowercase_		) + 1		) ,      6		):
  if number % i == 0 or number % (i + 2) == 0:
   return False
 return True




def 		lowerCAmelCase_	(  lowercase_   :							int = 6008_5147_5143		):

 '''simple docstring'''






 try:
  __SCREAMING_SNAKE_CASE :			Any												=       int(lowercase_		)
 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.'''		)
 __SCREAMING_SNAKE_CASE :			List[str]												=       0
 if is_prime(lowercase_		):
  return n
 while n % 2 == 0:
  n //= 2
 if is_prime(lowercase_		):
  return n
 for i in range(3 ,      int(math.sqrt(lowercase_		)		) + 1 ,      2		):
  if n % i == 0:
   if is_prime(n // i		):
    __SCREAMING_SNAKE_CASE :			Optional[int]												=       n // i
    break
   elif is_prime(lowercase_		):
    __SCREAMING_SNAKE_CASE :			Any												=       i
 return max_number


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

