Python으로 구현한 2960번 에라토스테네스의 체 문제 풀이입니다.
https://www.acmicpc.net/problem/2960
n, k = map(int, input().split())
data = [True for i in range(n + 1)]
count = 0
for i in range(2, len(data) + 1) :
for j in range(i, n+1, i) :
if data[j] :
data[j] = False
count += 1
if count == k :
print(j)
break
초기에 n개의 data 리스트의 값들을 모두 True로 설정한다.
이중 for문을 통해 해당 값이 True일 경우 해당 값을 False로 갱신한다. 그 후 count를 1씩 증가시키는데,
만약 count 값이 입력받은 k 값과 같을 경우 k번째 지우는 수를 출력한다.
'백준(Python) 풀이 > 수학' 카테고리의 다른 글
백준(Python) 1212번 8진수 2진수 풀이 (0) | 2021.10.12 |
---|---|
백준(Python) 10886번 0 = not cute / 1 = cute 풀이 (0) | 2021.10.12 |
백준(Python) 2480번 주사위 세개 풀이 (0) | 2021.10.12 |
백준(Python) 2953번 나는 요리사다 풀이 (0) | 2021.10.12 |
백준(Python) 5565번 영수증 풀이 (0) | 2021.10.12 |