STUDY/Algorithm

[백준] 2960 에라토스테네스의 체

sinawi95 2021. 2. 3. 22:47
728x90

www.acmicpc.net/problem/2960

 

2960번: 에라토스테네스의 체

2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다.

www.acmicpc.net


n,k=map(int,input().split())
prime=[False,False]+[True]*(n-1)
index,result = 0,0
for number, val in enumerate(prime):
    if val:
        for i in range(number,n+1,number):
            if prime[i]:
                prime[i]=False
                index+=1
            if index==k:
                result = i
                break
print(result)

에라토스테네스의 체를 사용할때 항상 앞에 false 두개를 넣고 시작한다.

index랑 실제 숫자랑 맞추면 생각하기 조금더 쉽기 때문이다

 

그리고 이문제는 조금 이상한게 prime을 구해야하는데  소수까지 제거해버린다.

힌트로 2, 4, 6, 8, 10, 3, 9, 5, 7 이렇게 지워진다고 되어있는데 소수는 남겨야하지 않나?

'STUDY > Algorithm' 카테고리의 다른 글

[백준] 1009 분산처리  (0) 2021.02.03
[백준] 2480 주사위 세개  (0) 2021.02.03
[백준] 1032 명령프롬프트  (0) 2021.02.03
[백준] 1268. 임시반장 구하기  (0) 2021.02.02
[백준] 2941 크로아티아 알파벳  (0) 2021.02.01