백준

백준 17103 - Java

으엉어엉 2024. 9. 4. 12:42
728x90

문제

 

내 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class GoldbachPartition {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());

        int maxN = 1000000;
        boolean[] isPrime = new boolean[maxN + 1];

        //true로 초기화
        for (int i = 2; i <= maxN; i++) {
            isPrime[i] = true;
        }

        //소수 계산
        for (int i = 2; i * i <= maxN; i++) {
            if (isPrime[i]) {
                for (int j = i * i; j <= maxN; j += i) {
                    isPrime[j] = false;
                }
            }
        }

        for (int t = 0; t < T; t++) {
            int N = Integer.parseInt(br.readLine());
            int count = 0;

            for (int i = 2; i <= N / 2; i++) {
                if (isPrime[i] && isPrime[N - i]) {
                    count++;
                }
            }
            System.out.println(count);
        }
    }
}

 

소수 계산과 counting만 하면 되는 문제이긴 한데 이것이 for문의 조건식을 어떻게 쓸 것인지에 대해 고민을 하느라 시행착오가 있었다. 

728x90

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

백준 10773 - Java  (0) 2024.09.04
백준 28278 - Java  (0) 2024.09.04
백준 13909 - Java  (0) 2024.09.04
백준 4948 - Java  (0) 2024.09.03
백준 1929 - Java  (0) 2024.09.03