에라토스테네스의 체는 소수를 찾는 방법이다.
2부터 시작해서 소수의 배수들을 모두 제거하는 알고리즘을 통해 대량의 소수를 구할 수 있다.
#define bigNum 1000000001
bool primeNumber[bigNum];
void setPrime() {
for (int i = 2; i < bigNum; i++) {
primeNumber[i] = true;
}
for (int i = 2; i < bigNum; i++) {
if (!primeNumber[i]) continue;
for (int j = 2 * i; j < bigNum; j += i) {
primeNumber[j] = false;
}
}
}
10^9개의 소수를 구하는데 약 18초가 소요된다.
'ProblemSolving' 카테고리의 다른 글
[BOJ] 1083_소트 (0) | 2021.03.01 |
---|---|
[BOJ] 1322_X와 K (0) | 2021.02.27 |
[BOJ] 12865_평범한 배낭 (0) | 2021.02.25 |
[BOJ] 2156_포도주 시식 (0) | 2021.02.25 |
[BOJ] 1500_최대 곱 (0) | 2021.02.24 |
최근댓글