프로그래밍/알고리즘

BOJ 2960 · 에라토스테네스의 체

반응형


알고리즘 분류 : 수학  


에라토스테네스의 체를 이용하는 문제이다. 자세한 내용은 이곳을 참조.

주어진 규칙에 따라 숫자를 지우면서, 숫자를 카운트하면 된다.




C++ 소스코드


#include <cstdio>

bool prime[1001];

int main() {
    int n, k;
    int cnt = 0;
    scanf("%d %d", &n, &k);
    for (int i=2; i<=n; i++) {
        for (int j=i; j<=n; j+=i) {
            if (!prime[j]) {
                prime[j] = true;
                if (++cnt == k) {
                    printf("%d\n", j);
                    break;
                }
            }
        }
    }
    return 0;
}




Python 3 소스코드


prime = [False for _ in range(1001)]

n, k = map(int, input().split())
cnt = 0
for i in range(2, n+1):
    for j in range(i, n+1, i):
        if prime[j] is False:
            prime[j] = True
            cnt += 1
            if cnt == k:
                print(j)
                break




참고



반응형