

from __future__ import annotations

from functools import lru_cache
from math import ceil

_UpperCAmelCase						:  List[str]									=			100

_UpperCAmelCase						:  Tuple									=			set(range(3, NUM_PRIMES, 2))
primes.add(2)
_UpperCAmelCase						:  int

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=100 )
def    __lowerCamelCase      (					UpperCamelCase__ ):







							'''simple docstring'''






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

							snake_case_     							=       set()
							snake_case_     							=       42
							snake_case_     							=       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      (					UpperCamelCase__ = 5000 ):







							'''simple docstring'''






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


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







from math import sqrt





def    __lowerCamelCase      (					UpperCamelCase__ ):







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





def    __lowerCamelCase      (					UpperCamelCase__ = 10001 ):







							'''simple docstring'''






							snake_case_     							=       0
							snake_case_     							=       1
							while count != nth and number < 3:
														number += 1
														if is_prime(UpperCamelCase__ ):
																					count += 1
							while count != nth:
														number += 2
														if is_prime(UpperCamelCase__ ):
																					count += 1
							return number


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




