반응형
출처: https://www.acmicpc.net/problem/2960
Input
10 7
Output
9
▶ 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다.
에라토스테네스의 체를 구현해서 제외되는 소수를 차례대로 구하는 문제입니다.
※ 관련 내용은 아래 링크 참고
#include <iostream>
using namespace std;
const int MAX = 1001;
int N, K;
bool isPrime[MAX];
int solve(){
// 모든 수를 소수로 가정
for(int i = 2; i <= N; i++) {
isPrime[i] = true;
}
int cnt = 0;
for(int i = 2; i <= N; i++) {
for(int j = i; j <= N; j += i) {
// 이미 지워진 숫자인 경우
if(!isPrime[j]) continue;
// i의 배수 제거 (소수가 아닌 것 제거)
isPrime[j] = false;
++cnt;
if(cnt == K) {
return j;
}
}
}
}
int main() {
cin >> N >> K;
cout << solve() << endl;
return 0;
}
반응형
'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글
[BOJ] 백준 1002 터렛 (0) | 2021.02.21 |
---|---|
[BOJ] 백준 2941 크로아티아 알파벳 (0) | 2021.02.21 |
[BOJ] 백준 1929 소수 구하기 (0) | 2021.02.21 |
[BOJ] 백준 1747 소수&팰린드롬 (0) | 2021.02.21 |
[BOJ] 백준 1259 팰린드롬수 (0) | 2021.02.21 |
댓글