알고리즘

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

j9972 2023. 5. 16. 17:38
728x90

1. 문제

https://www.acmicpc.net/problem/2960

 

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

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

www.acmicpc.net

 

2. 접근

1. while 문을 통해서 k의 범위를 체크해 가면서 가장 작은 값부터 그의 배수들을 0으로 바꿔가면서 풀면된다.

2. for문을 돌리면서 현재 가장 작은값으로 배열의 값이 나눠 떨어지면서, 그 값이 0이 아닌 경우는 배열의 해당 값을 0으로 바꾸면 된다

 

3. 풀이

# 2960 실버 4
import sys
input = sys.stdin.readline

n,k = map(int,input().split())

data = [i for i in range(2,n+1)]
cnt = 0

while k != 0:
    check = 0
    for i in data:
        if i != 0:
            check = i
            break
    
    for i in range(len(data)):
        if data[i] % check == 0 and data[i] != 0:
            cnt = data[i]
            data[i] = 0
            k -= 1
        if k == 0:
            break

            
print(cnt)