


from __future__ import annotations

from functools import lru_cache
from math import ceil

lowerCAmelCase__  :Union[str, Any]   			=							1_0_0

lowerCAmelCase__  :Optional[int]   			=							set(range(3, NUM_PRIMES, 2))
primes.add(2)
lowerCAmelCase__  :Optional[int]   			=							4_2

for prime in range(3, ceil(NUM_PRIMES**0.5), 2):
		if prime not in primes:
				continue
		primes.difference_update(set(range(prime * prime, NUM_PRIMES, prime)))

@lru_cache(maxsize=1_0_0       )
def        lowerCAmelCase__ (			a__:		Optional[int]       )  ->		set[int]:


							'''simple docstring'''





							if number_to_partition < 0:
														return set()
							elif number_to_partition == 0:
														return {1}

							_UpperCAmelCase 		=			set()
							_UpperCAmelCase 		=			42
							_UpperCAmelCase 		=			42

							for prime in primes:
														if prime > number_to_partition:
																					continue
														for sub in partition(number_to_partition - prime       ):
																					ret.add(sub * prime       )

							return ret

def        lowerCAmelCase__ (			a__:		Dict = 5_0_0_0       )  ->		int | None:


							'''simple docstring'''





							for number_to_partition in range(1			,  _SCREAMING_SNAKE_CASE       ):
														if len(partition(_SCREAMING_SNAKE_CASE       )       ) > number_unique_partitions:
																					return number_to_partition
							return None


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

"""simple docstring"""
import math







def 						__a   (	_SCREAMING_SNAKE_CASE   )	->bool:

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







def 						__a   (	_SCREAMING_SNAKE_CASE = 0.1   )	->int:
  a__:     str										=	3
  a__:     Optional[Any]										=	3

  while primes / (2 * j - 1) >= ratio:
    for i in range(j * j + j + 1		,     (j + 2) * (j + 2)		,     j + 1   ):
      primes += is_prime(_SCREAMING_SNAKE_CASE   )
    j += 2
  return j


if __name__ == "__main__":
 import doctest

 doctest.testmod()


