Java

에라토스테네스의 체 : 소수 찾기

프로버티기 2025. 3. 30. 13:34
class Solution {
    public int solution(int n) {
        boolean[] isPrime = new boolean[n+1];
        int answer = 0;
        for(int i = 2; i <= n; i++){
            isPrime[i] = true;
        }
        for(int i = 2; i * i <= n; i++){
            if(isPrime[i]) {
                for(int j = i * i ; j <= n; j += i) { // i의 배수 중 아직 안 지운 것들의 시작점 : i * i 
                    isPrime[j] = false;
                }
            }
        }
        for(int i = 2; i <= n; i++){
            if(isPrime[i])answer += 1;
        }
        return answer;
    }
}