본문 바로가기

Programming/BaekJoon

[C++] 백준 2960번 : 에라토스테네스의 체


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




#include <iostream>

using namespace std;

int main() {

int n,k;

cin >> n >> k;


int *ary = new int[n];

fill_n(ary, n, 1);

int P=2,cnt=0,output;

while (k!=cnt) {

while (1) {

if (ary[P - 1])

break;

P++;

}

for (int i = P; i <= n; i= i+P) 

if (ary[i - 1]) {

ary[i - 1] = 0;

cnt++;

if (cnt == k) {

output = i;

break;

}

}

}

cout << output;

}