필요한것 : 불린형 배열
bool isPrime[MAX+1];
fill(isPrime, isPrime + MAX+1, true);
isPrime[1] = false;
for (int i = 2; i <= MAX; i++) {
if (!isPrime[i]) continue;
for (int j = i * i; j <= MAX; j += i)
isPrime[j] = false;
}
j = i*i부터 탐색하는 이유는 i의 배수 중 i*2는 2의 배수때 걸러졌고, i*3은 3의 배수 때 걸러졌고...
O(nloglogn)
'알고리즘 > 메모' 카테고리의 다른 글
벨만포드, SPFA (0) | 2019.08.18 |
---|---|
다익스트라 (0) | 2019.08.18 |
Segment Tree, LIS (0) | 2019.08.18 |
Union Find (=disjoint set) (0) | 2019.08.18 |
GCD 함수 (0) | 2019.08.18 |