

from __future__ import annotations

from functools import lru_cache
from math import ceil

lowerCAmelCase__       = 100

lowerCAmelCase__       = set(range(3, NUM_PRIMES, 2))
primes.add(2)
lowerCAmelCase__       = 42

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(	__A			):
  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 = 5000			):
  for number_to_partition in range(1   ,       __A			):
    if len(partition(__A			)			) > number_unique_partitions:
      return number_to_partition
  return None


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






def      _lowerCAmelCase(	__A			):
  UpperCAmelCase					      =  0
  while num > 0:
    digit_sum += num % 10
    num //= 10
  return digit_sum
def      _lowerCAmelCase(	__A = 100			):
  UpperCAmelCase					      =  1
  UpperCAmelCase					      =  2

  for i in range(2   ,       max_n + 1			):
    UpperCAmelCase					      =  pre_numerator
    UpperCAmelCase					      =  2 * i // 3 if i % 3 == 0 else 1
    UpperCAmelCase					      =  cur_numerator
    UpperCAmelCase					      =  e_cont * pre_numerator + temp

  return sum_digits(__A			)


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



