코린이의 소소한 공부노트

[백준 온라인 저지] 4948. 베르트랑 공준 본문

코딩테스트 풀이/JAVA

[백준 온라인 저지] 4948. 베르트랑 공준

무지맘 2023. 4. 20. 00:21

1. 입력

- 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 케이스는 n(1 n 123,456)을 포함하는 한 줄로 이루어져 있다.

- 입력의 마지막에는 0이 주어진다.

 

2. 출력

- 각 테스트 케이스에 대해서, n보다 크고, 2n보다 작거나 같은 소수의 개수를 출력한다.

 

3. 코드

import java.util.*;
import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        ArrayList<Integer> list = new ArrayList<Integer>();
        int n = Integer.valueOf(br.readLine());
        while(n!=0){
            int count = 0;
            for(int i=n+1 ; i<=2*n ; i++){
                boolean isPrime = true;
                for(int j=2 ; j<=Math.sqrt(i) ; j++){
                    if(i%j==0){
                        isPrime = false;
                        break;
                    }
                }
                if(isPrime) count++;
            }
            list.add(count);
            n = Integer.valueOf(br.readLine());
        }
        for(int i=0; i<list.size(); i++)
            bw.write(list.get(i)+"\n");
        bw.flush();
        bw.close();
    }
}