Sieve of Eratosthenes
μλΌν μ€ν λ€μ€μ 체 (Sieve of Eratosthenes) λΌλ μκ³ λ¦¬μ¦μ μμ€λ₯Ό ꡬνλ μκ³ λ¦¬μ¦μ μΌμ’ μ΄λ€.
μμκ° μλ μλ₯Ό κ±°λ₯΄λ λ°©λ²μΌλ‘ 2
λΆν° N-1
κΉμ§μ μμ€μμ 2μ λ°°μλ₯Ό λͺ¨λ 체μ κ±°λ₯΄λ μμΌλ‘ λμλλ€.
2
μ λ°°μλ₯Ό 체ν¬νλ€.3
μ λ°°μλ₯Ό 체ν¬νλ€.4
λ 2μ λ°°μμμ 체ν¬νμΌλ μμκ° μλλ€.5
μ λ°°μλ₯Ό 체ν¬νλ€.- μ΄λ°μμΌλ‘ 체ν¬νμ¬ μ²΄ν¬κ° λμ§ μλ μλ€μ΄ μμμ΄λ€.
μλλ νΉμ μ«μμ μμμ κ°―μλ₯Ό ꡬνλ ν¨μμ΄λ€.
/**
* μλΌν λ
Έμ€μ 체
* @param n
* @return
*/
public static int solution(int n) {
boolean[] b = new boolean[n + 1];
int answer = 0;
for (int i = 2; i <= n; ++i) {
if (b[i] == false) {
answer++;
for (int j = i; j <= n; j += i) {
b[j] = true;
}
}
}
return answer;
}