백준
BOJ[JAVA] 17103 골드바흐 파티션
양갱이요
2023. 4. 23. 21:46
https://www.acmicpc.net/problem/17103
17103번: 골드바흐 파티션
첫째 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 100)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 N은 짝수이고, 2 < N ≤ 1,000,000을 만족한다.
www.acmicpc.net
import java.io.*;
public 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));
boolean[] num = new boolean[1000001];
num[0] = num[1] = true; // 소수 : false
for(int i = 2; i * i <= 1000000; i++) {
if(!num[i]) { // 소수이면, 그 배수는 소수 아님
for(int j = i + i; j <= 1000000; j += i) num[j] = true;
}
}
int N = Integer.parseInt(br.readLine());
for(int i = 0; i < N; i++) {
int n = Integer.parseInt(br.readLine());
int cnt = 0;
for(int j = 2; j <= n / 2; j++) {
if(!num[j] && !num[n - j]) cnt++;
}
bw.write(cnt + "\n");
}
bw.flush();
bw.close();
br.close();
}
}