[백준/BOJ] 백준 2960번 : 에라토스테네스의 체
2020. 8. 19. 12:48ㆍ알고리즘 문제풀이
https://www.acmicpc.net/problem/2960
2960번: 에라토스테네스의 체
문제 에라토스테네스의 체는 N보다 작거나 같은 모든 소수를 찾는 유명한 알고리즘이다. 이 알고리즘은 다음과 같다. 2부터 N까지 모든 정수를 적는다. 아직 지우지 않은 수 중 가장 작은 수를 찾
www.acmicpc.net
규칙을 이용해 k번째 지워진 수를 구한다
코드
#include <iostream>
#include <cstring>
using namespace std;
int n, k;
int check[1001];
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
memset(check, 0, sizeof(check));
int cnt = 0;
cin >> n >> k;
for (int i = 2; i <= n; i++)
{
if (check[i] == 0)
{
check[i] = 1;
cnt++;
//k번째 지워진 수 일때
if (cnt == k)
{
cout << i;
return 0;
}
}
for (int j = i * 2; j <= n; j = j + i)
{
if (check[j] == 0)
{
check[j] = 1;
cnt++;
//k번째 지워진 수 일때
if (cnt == k)
{
cout << j;
return 0;
}
}
}
}
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 1963번 : 소수 경로 (0) | 2020.08.20 |
---|---|
[백준/BOJ] 백준 9328번 : 열쇠 (0) | 2020.08.20 |
[백준/BOJ] 백준 11052번 : 카드 구매하기 (0) | 2020.08.18 |
[백준/BOJ] 백준 9461번 : 파도반 수열 (0) | 2020.08.18 |
[백준/BOJ] 백준 11727번 : 2×n 타일링 2 (0) | 2020.08.18 |