728x90
반응형

그 유명한 에라토스테네스의 체 문제이다. 

에라토스네테스의 체를 사용해 소수 리스트를 만들 때 K(입력) 번째 지우는 수를 구해야 하는 문제이다. 

소수 리스트를 생성하는 과정에서 변수(cnt) 하나만 추가해주면 된다.

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

+ Recent posts