






"""simple docstring"""

import random

def 		__lowerCamelCase	(  __UpperCamelCase       )						->    bool:

		"""simple docstring"""







		lowerCAmelCase_   :							Tuple									=			num - 1
		lowerCAmelCase_   :							Optional[Any]									=			0

		while s % 2 == 0:
				lowerCAmelCase_   :							List[Any]									=			s // 2
				t += 1

		for _ in range(5       ):
				lowerCAmelCase_   :							int									=			random.randrange(2      ,       num - 1       )
				lowerCAmelCase_   :							Dict									=			pow(__UpperCamelCase      ,       __UpperCamelCase      ,       __UpperCamelCase       )
				if v != 1:
						lowerCAmelCase_   :							Dict									=			0
						while v != (num - 1):
								if i == t - 1:
										return False
								else:
										lowerCAmelCase_   :							Any									=			i + 1
										lowerCAmelCase_   :							Optional[int]									=			(v**2) % num
		return True

def 		__lowerCamelCase	(  __UpperCamelCase       )						->    bool:

		"""simple docstring"""







		if num < 2:
				return False

		lowerCAmelCase_   :							Any									=			[
		    2,
		    3,
		    5,
		    7,
		    11,
		    13,
		    17,
		    19,
		    23,
		    29,
		    31,
		    37,
		    41,
		    43,
		    47,
		    53,
		    59,
		    61,
		    67,
		    71,
		    73,
		    79,
		    83,
		    89,
		    97,
		    101,
		    103,
		    107,
		    109,
		    113,
		    127,
		    131,
		    137,
		    139,
		    149,
		    151,
		    157,
		    163,
		    167,
		    173,
		    179,
		    181,
		    191,
		    193,
		    197,
		    199,
		    211,
		    223,
		    227,
		    229,
		    233,
		    239,
		    241,
		    251,
		    257,
		    263,
		    269,
		    271,
		    277,
		    281,
		    283,
		    293,
		    307,
		    311,
		    313,
		    317,
		    331,
		    337,
		    347,
		    349,
		    353,
		    359,
		    367,
		    373,
		    379,
		    383,
		    389,
		    397,
		    401,
		    409,
		    419,
		    421,
		    431,
		    433,
		    439,
		    443,
		    449,
		    457,
		    461,
		    463,
		    467,
		    479,
		    487,
		    491,
		    499,
		    503,
		    509,
		    521,
		    523,
		    541,
		    547,
		    557,
		    563,
		    569,
		    571,
		    577,
		    587,
		    593,
		    599,
		    601,
		    607,
		    613,
		    617,
		    619,
		    631,
		    641,
		    643,
		    647,
		    653,
		    659,
		    661,
		    673,
		    677,
		    683,
		    691,
		    701,
		    709,
		    719,
		    727,
		    733,
		    739,
		    743,
		    751,
		    757,
		    761,
		    769,
		    773,
		    787,
		    797,
		    809,
		    811,
		    821,
		    823,
		    827,
		    829,
		    839,
		    853,
		    857,
		    859,
		    863,
		    877,
		    881,
		    883,
		    887,
		    907,
		    911,
		    919,
		    929,
		    937,
		    941,
		    947,
		    953,
		    967,
		    971,
		    977,
		    983,
		    991,
		    997,
		]

		if num in low_primes:
				return True

		for prime in low_primes:
				if (num % prime) == 0:
						return False

		return rabin_miller(__UpperCamelCase       )

def 		__lowerCamelCase	(  __UpperCamelCase = 1024       )						->    int:

		"""simple docstring"""







		while True:
				lowerCAmelCase_   :							str									=			random.randrange(2 ** (keysize - 1)      ,       2 ** (keysize)       )
				if is_prime_low_num(__UpperCamelCase       ):
						return num


if __name__ == "__main__":
					lowercase__          = generate_large_prime()
					print(("""Prime number:""", num))
					print(("""is_prime_low_num:""", is_prime_low_num(num)))








"""simple docstring"""

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

def 		__lowerCamelCase	(  __UpperCamelCase       )						->    str:

		"""simple docstring"""







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

		lowerCAmelCase_   :							str									=			precision
		lowerCAmelCase_   :							Tuple									=			ceil(precision / 14       )
		lowerCAmelCase_   :							Optional[int]									=			426880 * Decimal(10005       ).sqrt()
		lowerCAmelCase_   :							Any									=			1
		lowerCAmelCase_   :							Any									=			13591409
		lowerCAmelCase_   :							List[str]									=			Decimal(__UpperCamelCase       )
		for k in range(1      ,       __UpperCamelCase       ):
				lowerCAmelCase_   :							List[Any]									=			factorial(6 * k       ) // (factorial(3 * k       ) * factorial(__UpperCamelCase       ) ** 3)
				linear_term += 545140134
				exponential_term *= -262537412640768000
				partial_sum += Decimal(multinomial_term * linear_term       ) / exponential_term
		return str(constant_term / partial_sum       )[:-1]


if __name__ == "__main__":
					lowercase__          = 50
					print(F"""The first {n} digits of pi is: {pi(n)}""")
