백준: 17103(골드바흐 파티션)

강지안·2023년 6월 14일
0

baekjoon

목록 보기
61/186

문제

코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;

public class q17103 {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int T = Integer.parseInt(br.readLine());

        // 에라토스테네스의 체
        int max = 1000000;
        boolean[] primes = new boolean[max + 2];
        Arrays.fill(primes, true);
        primes[0] = primes[1] = false;

        for(int i=2; i<Math.sqrt(max); i++) {
            if(primes[i]) {
                for(int j=2*i; j<=max; j+=i)
                    primes[j] = false;
            }
        }
        
        

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

            int j=2;
            while(j < Math.ceil(input/2.0)+1) {
                if(primes[j] && primes[input-j])
                    count++;
                j++;
            }
            bw.write(count+"\n");
        }
        bw.flush();
    }
}

학습

배열의 모든 값을 하나로 지정하기
Arrays.fill(배열명, 지정값)

0개의 댓글