본문 바로가기

Programming [Python]/백준 알고리즘 솔루션

#153 백준 파이썬 [2960] 에라토스테네스의 체

https://www.acmicpc.net/problem/2960

 

#Solution

에라토스테네스의 체를 활용하되, 걸러지는 숫자가 나올 때마다 num에 1을 더해준다. num == K가 되면 해당 소수를 출력한다.

N, K = map(int, input().split())

prime_ox = [True for _ in range(N + 1)]
num = 1

for i in range(2, N+1):
    if prime_ox[i] == True:
        for j in range(i, N + 1, i):
            if prime_ox[j] == False:
                continue
                
            if num == K:
                print(j)
                
            prime_ox[j] = False
            num += 1