






'''simple docstring'''





from __future__ import annotations

from functools import lru_cache
from math import ceil

SCREAMING_SNAKE_CASE 							=						100

SCREAMING_SNAKE_CASE 							=						set(range(3, NUM_PRIMES, 2))
primes.add(2)
SCREAMING_SNAKE_CASE 							=						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    :							int )      ->					set[int]:
    if number_to_partition < 0:
        return set()
    elif number_to_partition == 0:
        return {1}

    _UpperCAmelCase				:      set[int]			  =				set()
    _UpperCAmelCase				:      int
    _UpperCAmelCase				:      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      _lowerCamelCase	(						__A    :							int = 5_000 )      ->					int | None:
    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    :							int )      ->					bool:
    if not isinstance(__A		,		__A ):
        _UpperCAmelCase				:      Tuple			  =				f'''Input value of [number={number}] must be an integer'''
        raise TypeError(__A )
    if number < 0:
        return False
    _UpperCAmelCase				:      List[str]			  =				number * number
    while number > 0:
        if number % 10 != number_square % 10:
            return False
        number //= 10
        number_square //= 10
    return True


if __name__ == "__main__":
  import doctest

  doctest.testmod()




