유명한 소수 판별 테크닉.
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
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 17393 다이나믹 룰러 (0) | 2021.11.04 |
---|---|
[백준][Python][2021 하반기 삼성 코딩테스트] 23290 마법사 상어와 복제 (0) | 2021.10.29 |
[백준][Python][삼성 2021 하반기 코딩테스트] 23288 주사위 굴리기2 (0) | 2021.10.26 |
[백준][Python] 2920 음계 (0) | 2021.10.23 |
[백준][Python] 2475 검증수 (0) | 2021.10.23 |