슈콩

[BOJ] 백준 17103 골드바흐 파티션 본문

Algorithms/Baekjoon

[BOJ] 백준 17103 골드바흐 파티션

shukong 2025. 9. 10. 19:00

[문제]

https://www.acmicpc.net/problem/17103

 

 

[소스 코드]

import java.io.*;
import java.util.*;
public class Main {
	static List<Integer> list = new ArrayList<>();
	static boolean[] prime = new boolean[1000001];
    public static void main(String[] args) throws IOException {
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    	int t = Integer.parseInt(br.readLine());
    	isPrime();
    	while(t-->0) {
    		int n = Integer.parseInt(br.readLine());
    		int result = 0;
    		for(int p : list) {
    			if(p>n/2) break;
    			if(prime[n-p]) result++;
    		}
    		System.out.println(result);
    	}
    }
    private static void isPrime() {
    	Arrays.fill(prime,true);
    	prime[1] = false;
    	for(int i=2;i*i<=1000000;i++) {
    		if(!prime[i]) continue;
    		for(int j=i*i;j<=1000000;j+=i) {
    			prime[j] = false;
    		}
    	}
    	for(int i=2;i<=1000000;i++) {
    		if(prime[i]) list.add(i);
    	}
    }
}