- 구하고자 하는 K번째 소수에서 K의 범위는 1 ≤ K ≤ 500,000이다.
즉, K = 500,000일때도 답을 출력할 수 있는 범위를 찾아야 한다.
IndexError
를 범하면서 기어코 답을 찾았는데 범위의 마지막 값은 10**7이었다.
import sys
input = sys.stdin.readline
K = int(input().strip())
prime_number = []
arr = [True] * ((10**7) + 1)
for i in range(2, (10**7)+1):
if arr[i]:
prime_number.append(i)
for j in range(i*i, (10**7)+1, i):
arr[j] = False
print(prime_number[K-1])