문제 출처: https://www.acmicpc.net/problem/4948



유사 문제 참고: http://qlyh8.tistory.com/144?category=731166

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
 
public class Main {    
    public static void main(String[] args) throws Exception {
        int endNum = 123456*2+1;
        boolean[] isPrimeArr = new boolean[endNum];
        Arrays.fill(isPrimeArr, true);
        isPrimeArr[0= false;
        isPrimeArr[1= false;
        
        for(int i=; i<=(int)Math.sqrt(endNum) ; ++i) {
            if (isPrimeArr[i]){
                for (int j=i+i; j<=endNum; j+=i)
                    isPrimeArr[j] = false;
            }
        }
        
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder builder = new StringBuilder();
        
        while(true){
            int n = Integer.parseInt(reader.readLine());
            if(n == 0)
                break;
            
            int count = 0;
            for(int i=n+; i<=n*; i++){
                if(isPrimeArr[i])
                    count++;
            }
            builder.append(count).append("\n");
        }
        
        System.out.println(builder);
    }
}
cs




'Algorithm' 카테고리의 다른 글

백준 2292번: 벌집  (0) 2018.10.24
백준 9020번: 골드바흐의 추측  (0) 2018.10.21
백준 1929번: 소수 구하기  (0) 2018.10.21
백준 2581번: 소수  (0) 2018.10.21
백준 1978번: 소수 찾기  (0) 2018.10.21

+ Recent posts