practivceAlgorithm/백준

[백준][Python] 2960 에스타라노스의 체

findTheValue 2021. 10. 29. 00:21

유명한 소수 판별 테크닉.

2부터 int(N**0.5) + 1까지의 배수를 기존 집합에서 제외시키는 로직

 

N, K = map(int, input().split()) 
cnt = 0 
nums = [True] * (N + 1) 
for i in range(2, int(N**0.5) + 1): 
    for j in range(i, N+1, i): 
        if nums[j] == True: 
            nums[j] = False 
            cnt = cnt + 1 
            if cnt == K: 
                print(j) 
                break