백준

백준 4948 - Java

으엉어엉 2024. 9. 3. 17:04
728x90

문제

풀이

import java.util.Scanner;

public class BertAndGongjun {
    public static void main(String[] args) throws Exception {
        Scanner sc = new Scanner(System.in);
        int limit = 123456 * 2;
        boolean[] isPrime = new boolean[limit + 1];

        // 소수 판별 배열 초기화
        for (int i = 2; i <= limit; i++) {
            isPrime[i] = true;
        }

        // 에라토스테네스의 체 알고리즘으로 소수 판별
        for (int i = 2; i * i <= limit; i++) {
            if (isPrime[i]) {
                for (int j = i * i; j <= limit; j += i) {
                    isPrime[j] = false;
                }
            }
        }

        while (true) {
            int n = sc.nextInt();
            if (n == 0) {
                break;
            }
            
            int count = 0;
            for (int i = n + 1; i <= 2 * n; i++) {
                if (isPrime[i]) {
                    count++;
                }
            }
            System.out.println(count);
        }
    }
}
728x90

'백준' 카테고리의 다른 글

백준 17103 - Java  (0) 2024.09.04
백준 13909 - Java  (0) 2024.09.04
백준 1929 - Java  (0) 2024.09.03
백준 4134 - Java  (0) 2024.09.03
백준 2485 - Java  (0) 2024.09.02