에라토스테네스의 체 외워야할 알고리즘

[소수 구하기]

시간복잡도 : O(nloglongn)

간략한 설명

2부터 자기자신을 제외한 배수를 지워나간다. 반복되면서 2,3,5,7 … 등의 자신만 나눠지는 소수만이 살아남게 된다.

    static private void Eratos() {
        prime = new boolean[MAX+1];
        prime[0] = false;
        prime[1] = false;

        for(int i=2; i<=MAX; i++) {
            prime[i] = true;
        }
        //true가 소수
        for(int i=2; i<=MAX; i++) {
            for(int j=i*2; j<=MAX; j+=i) {
            //해당 배수는 다 false
                if(prime[i]) {
                    prime[j] = false;
                }
            }
        }
    }

참고자료 : https://ko.wikipedia.org/wiki/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98_%EC%B2%B4