You will be fine

<Algorithm> 5. 에라토스테네스의 체

by BFine
반응형

에라토스테네스의 체



빠르게 주어진  2부터 N 사이의 소수를 찾을 수 있다.

  • 2부터 N 모든 수를 늘어놓는다. 

  • 2를 제외한 2의 배수를 지운다.

  • 3을 제외한 3의 배수를 지운다.

  • 4를 제외한 4의 배수를 지운다.( 2의 배수이므로 이미 걸러짐 )

  • 5를 제외한 5의 배수를 지운다. 

  • (숫자)^2 > N 전까지 반복

  • 지워지지 않은 숫자가 소수이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    public static void main(String[] args) {
        int array[]=new int[100];
        for(int i=2;i<100;i++){
            array[i]=i;  // 모두 배열에 저장
        }
        
        for(int i=2;i<100;i++){    
           if(i*i>100)break// i^2>N 면 반복문 종료
           
            if(array[i]==0)
                continue;
            for(int j=i*2;j<100;j+=i){ // 자기를 제외한 자신의 배수 제거
                array[j]=0;
            }
        }
        for(int i=2;i<100;i++){
            if(!(array[i]==0)){ // 출력
                System.out.print(array[i]+"->");
            }    
        }
    }
}
 
cs

반응형

'공부(2018~2019) - 스킨변경전 > Algorithm' 카테고리의 다른 글

<Algorithm> 7. 6603번 로또  (0) 2018.04.12
<Algorithm> 6. 2023번 신기한 소수  (0) 2018.04.11
<Algorithm> 4. BFS  (0) 2018.04.11
<algorithm> 3. DFS  (0) 2018.03.30
<algorithm> 2. 10026번 RGB  (0) 2018.03.30

블로그의 정보

57개월 BackEnd

BFine

활동하기