작은 소수부터 목표값까지 곱해주면서 제거
for (int i = 2; i <= N; i++) {
for (int j = 1; i*j <= N; j++) {
int ij = i*j;
if (prime[ij] == 1) continue;
if (j == 1) continue;
prime[ij] = 1;
}
}
for (int i = 2; i <= N; i++) {
if(prime[i] == 0) continue;
primeList.add(i);
for (int j = 1; i*j <= N; j++) {
if (prime[i*j] == 0) continue;
if (j == 1) continue;
prime[i*j] = 0;
}
}
'알고리즘' 카테고리의 다른 글
벨만포드 (0) | 2018.09.11 |
---|---|
최장 증가 수열 (LIS : Longest Increasing Subsequence) (0) | 2018.07.19 |
최소 공통 조상(LCA : Lowest Common Ancestor) (0) | 2018.07.18 |
페르마의 소정리 (0) | 2018.07.17 |
Union-Find (0) | 2018.07.17 |
위상정렬 (Topological Sort) (0) | 2018.07.17 |
SPFA (Shortest Path Faster Algorithm) (0) | 2018.07.17 |
인덱스 트리 (Indexed Tree) (0) | 2018.07.17 |