
from math import sqrt




def 	UpperCamelCase__  (     SCREAMING_SNAKE_CASE_	:	int       )  ->     bool:

						if 1 < number < 4:
												# 2 and 3 are primes
												return True
						elif number < 2 or number % 2 == 0 or number % 3 == 0:
												# Negatives, 0, 1, all even numbers, all multiples of 3 are not primes
												return False

						# All primes number are in format of 6k +/- 1
						for i in range(5		,   int(sqrt(SCREAMING_SNAKE_CASE_       ) + 1       )		,   6       ):
												if number % i == 0 or number % (i + 2) == 0:
																		return False
						return True




def 	UpperCamelCase__  (     SCREAMING_SNAKE_CASE_	:	int = 1_00_01       )  ->     int:
						_lowercase					       =					0
						_lowercase					       =					1
						while count != nth and number < 3:
												number += 1
												if is_prime(SCREAMING_SNAKE_CASE_       ):
																		count += 1
						while count != nth:
												number += 2
												if is_prime(SCREAMING_SNAKE_CASE_       ):
																		count += 1
						return number


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

from datasets.utils.patching import _PatchedModuleObj, patch_submodule

from . import _test_patching




def 	UpperCamelCase__  (     )  ->     List[str]:
						import os as original_os
						from os import path as original_path
						from os import rename as original_rename
						from os.path import dirname as original_dirname
						from os.path import join as original_join

						assert _test_patching.os is original_os
						assert _test_patching.path is original_path
						assert _test_patching.join is original_join

						assert _test_patching.renamed_os is original_os
						assert _test_patching.renamed_path is original_path
						assert _test_patching.renamed_join is original_join

						_lowercase					       =					"""__test_patch_submodule_mock__"""
						with patch_submodule(_test_patching		,   """os.path.join"""		,   SCREAMING_SNAKE_CASE_       ):
												# Every way to access os.path.join must be patched, and the rest must stay untouched

												# check os.path.join
												assert isinstance(_test_patching.os		,   _PatchedModuleObj       )
												assert isinstance(_test_patching.os.path		,   _PatchedModuleObj       )
												assert _test_patching.os.path.join is mock

												# check path.join
												assert isinstance(_test_patching.path		,   _PatchedModuleObj       )
												assert _test_patching.path.join is mock

												# check join
												assert _test_patching.join is mock

												# check that the other attributes are untouched
												assert _test_patching.os.rename is original_rename
												assert _test_patching.path.dirname is original_dirname
												assert _test_patching.os.path.dirname is original_dirname

												# Even renamed modules or objects must be patched

												# check renamed_os.path.join
												assert isinstance(_test_patching.renamed_os		,   _PatchedModuleObj       )
												assert isinstance(_test_patching.renamed_os.path		,   _PatchedModuleObj       )
												assert _test_patching.renamed_os.path.join is mock

												# check renamed_path.join
												assert isinstance(_test_patching.renamed_path		,   _PatchedModuleObj       )
												assert _test_patching.renamed_path.join is mock

												# check renamed_join
												assert _test_patching.renamed_join is mock

												# check that the other attributes are untouched
												assert _test_patching.renamed_os.rename is original_rename
												assert _test_patching.renamed_path.dirname is original_dirname
												assert _test_patching.renamed_os.path.dirname is original_dirname

						# check that everthing is back to normal when the patch is over

						assert _test_patching.os is original_os
						assert _test_patching.path is original_path
						assert _test_patching.join is original_join

						assert _test_patching.renamed_os is original_os
						assert _test_patching.renamed_path is original_path
						assert _test_patching.renamed_join is original_join




def 	UpperCamelCase__  (     )  ->     int:
						assert _test_patching.open is open

						_lowercase					       =					"""__test_patch_submodule_builtin_mock__"""
						# _test_patching has "open" in its globals
						assert _test_patching.open is open
						with patch_submodule(_test_patching		,   """open"""		,   SCREAMING_SNAKE_CASE_       ):
												assert _test_patching.open is mock

						# check that everthing is back to normal when the patch is over

						assert _test_patching.open is open




def 	UpperCamelCase__  (     )  ->     List[Any]:
						# pandas.read_csv is not present in _test_patching
						_lowercase					       =					"""__test_patch_submodule_missing_mock__"""
						with patch_submodule(_test_patching		,   """pandas.read_csv"""		,   SCREAMING_SNAKE_CASE_       ):
												pass




def 	UpperCamelCase__  (     )  ->     Tuple:
						# builtin should always be mocked even if they're not in the globals
						# in case they're loaded at one point
						_lowercase					       =					"""__test_patch_submodule_missing_builtin_mock__"""
						# _test_patching doesn't have "len" in its globals
						assert getattr(_test_patching		,   """len"""		,   SCREAMING_SNAKE_CASE_       ) is None
						with patch_submodule(_test_patching		,   """len"""		,   SCREAMING_SNAKE_CASE_       ):
												assert _test_patching.len is mock
						assert _test_patching.len is len




def 	UpperCamelCase__  (     )  ->     List[str]:
						_lowercase					       =					"""__test_patch_submodule_start_and_stop_mock__"""
						_lowercase					       =					patch_submodule(_test_patching		,   """open"""		,   SCREAMING_SNAKE_CASE_       )
						assert _test_patching.open is open
						patch.start()
						assert _test_patching.open is mock
						patch.stop()
						assert _test_patching.open is open




def 	UpperCamelCase__  (     )  ->     Union[str, Any]:
						from os import rename as original_rename
						from os.path import dirname as original_dirname
						from os.path import join as original_join

						_lowercase					       =					"""__test_patch_submodule_successive_join__"""
						_lowercase					       =					"""__test_patch_submodule_successive_dirname__"""
						_lowercase					       =					"""__test_patch_submodule_successive_rename__"""
						assert _test_patching.os.path.join is original_join
						assert _test_patching.os.path.dirname is original_dirname
						assert _test_patching.os.rename is original_rename

						with patch_submodule(_test_patching		,   """os.path.join"""		,   SCREAMING_SNAKE_CASE_       ):
												with patch_submodule(_test_patching		,   """os.rename"""		,   SCREAMING_SNAKE_CASE_       ):
																		with patch_submodule(_test_patching		,   """os.path.dirname"""		,   SCREAMING_SNAKE_CASE_       ):
																								assert _test_patching.os.path.join is mock_join
																								assert _test_patching.os.path.dirname is mock_dirname
																								assert _test_patching.os.rename is mock_rename

    # try another order
						with patch_submodule(_test_patching		,   """os.rename"""		,   SCREAMING_SNAKE_CASE_       ):
												with patch_submodule(_test_patching		,   """os.path.join"""		,   SCREAMING_SNAKE_CASE_       ):
																		with patch_submodule(_test_patching		,   """os.path.dirname"""		,   SCREAMING_SNAKE_CASE_       ):
																								assert _test_patching.os.path.join is mock_join
																								assert _test_patching.os.path.dirname is mock_dirname
																								assert _test_patching.os.rename is mock_rename

						assert _test_patching.os.path.join is original_join
						assert _test_patching.os.path.dirname is original_dirname
						assert _test_patching.os.rename is original_rename




def 	UpperCamelCase__  (     )  ->     List[Any]:
						_lowercase					       =					"""__test_patch_submodule_doesnt_exist_mock__"""
						with patch_submodule(_test_patching		,   """__module_that_doesn_exist__.__attribute_that_doesn_exist__"""		,   SCREAMING_SNAKE_CASE_       ):
												pass
						with patch_submodule(_test_patching		,   """os.__attribute_that_doesn_exist__"""		,   SCREAMING_SNAKE_CASE_       ):
												pass