




"""simple docstring"""


from __future__ import annotations

from functools import lru_cache
from math import ceil

A_						=				1_00

A_						=				set(range(3, NUM_PRIMES, 2))
primes.add(2)
A_						=				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=1_00    )
def 					UpperCAmelCase__       (snake_case__							:					int    ):
  """simple docstring"""

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

  _snake_case							:		set[int]								=  set()
  _snake_case							:		int
  _snake_case							:		int

  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 					UpperCAmelCase__       (snake_case__							:					int = 50_00    ):
  """simple docstring"""

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


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








"""simple docstring"""


from math import factorial

A_						=				{str(d): factorial(d) for d in range(10)}


def 					UpperCAmelCase__       (snake_case__							:					int    ):
  """simple docstring"""

  return sum(DIGIT_FACTORIAL[d] for d in str(snake_case__    )    )


def 					UpperCAmelCase__       ():
  """simple docstring"""

  _snake_case							:		List[str]								=  7 * factorial(9    ) + 1
  return sum(i for i in range(3		,   snake_case__    ) if sum_of_digit_factorial(snake_case__    ) == i    )


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


