반응형
코드
N, K = map(int,input().split())
n_list = [False]*(N+1)
cnt = 0
for i in range(2,N+1):
if n_list[i] == False:
for j in range(i,N+1,i):
if n_list[j] == False:
n_list[j] = True
cnt += 1
if cnt == K:
print(j)
설명
n_list라는 리스트를 만들어 처음 값을 False로 둔다.
2부터 차례대로 자신의 배수를 모두 지워나가서 리스트값을 True로 바꿔주면 결국 i값 중 소수만 (n_list[i] == False)라는 if문을 통과하게 된다. True로 하나씩 바꿔주면서 cnt 값을 1씩 증가시켜주고 만약 K값과 같아지면 현재 지워준 수를 출력해준다.
반응형
'알고리즘 > 수학' 카테고리의 다른 글
[백준][Python] 1110번 더하기 사이클 (0) | 2022.03.18 |
---|---|
[백준][Python] 9613번 GCD 합 (0) | 2022.03.17 |
[백준][Python] 5347번 LCM (0) | 2022.03.16 |
[백준][Python] 11653번 소인수분해 (0) | 2022.03.14 |
[백준][Python] 2581번 소수 (0) | 2022.03.03 |
댓글