


from decimal import Decimal, getcontext
from math import ceil, factorial







def     lowerCAmelCase_					( __lowerCamelCase     ):

							if not isinstance(__a							,     __a     ):
														raise TypeError("Undefined for non-integers"     )
							elif precision < 1:
														raise ValueError("Undefined for non-natural numbers"     )

							__snake_case		:      Dict										=       precision
							__snake_case		:      str										=       ceil(precision / 1_4     )
							__snake_case		:      str										=       4_2_6_8_8_0 * Decimal(1_0_0_0_5     ).sqrt()
							__snake_case		:      Tuple										=       1
							__snake_case		:      int										=       1_3_5_9_1_4_0_9
							__snake_case		:      Tuple										=       Decimal(__a     )
							for k in range(1							,     __a     ):
														__snake_case		:      List[Any]										=       factorial(6 * k     ) // (factorial(3 * k     ) * factorial(__a     ) ** 3)
														linear_term += 5_4_5_1_4_0_1_3_4
														exponential_term *= -2_6_2_5_3_7_4_1_2_6_4_0_7_6_8_0_0_0
														partial_sum += Decimal(multinomial_term * linear_term     ) / exponential_term
							return str(constant_term / partial_sum     )[:-1]


if __name__ == "__main__":
			_snake_case					:		Dict   =    50
			print(f'''The first {n} digits of pi is: {pi(n)}''')





from __future__ import annotations

from functools import lru_cache
from math import ceil

_snake_case					:		Tuple      =    100

_snake_case					:		int      =    set(range(3, NUM_PRIMES, 2))
primes.add(2)
_snake_case					:		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=1_0_0     )
def     lowerCAmelCase_					( __lowerCamelCase     ):
							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     lowerCAmelCase_					( __lowerCamelCase = 5_0_0_0     ):
							for number_to_partition in range(1							,     __lowerCamelCase     ):
														if len(partition(__lowerCamelCase     )     ) > number_unique_partitions:
																					return number_to_partition
							return None


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

