본문 바로가기

백준 문제풀기/JAVA

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

2보다 큰 짝수는

두 소수의 합으로 나타낼 수 있다

 

입력되는 짝수는

소수의 합이 몇쌍이 있는지 

구하는 문제입니다

 

import java.util.Scanner;

public class Main {
	static boolean num[];

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
        
		num = new boolean[1000001];
		num[0] = num[1] = true;
		for (int i = 2; i * i <= 1000000; i++) {
			if (!num[i]) {
				for (int j = i + i; j <= 1000000; j += i) {
					num[j] = true;
				}
			}
		}
		int T = scan.nextInt();
		for (int tc = 0; tc < T; tc++) {
			int temp = scan.nextInt();
			int ans = 0;

			for (int j = 2; j <= temp / 2; j++) {
				if (!num[j] && !num[temp - j])
					ans++;
			}
			System.out.println(ans);
		}
	}
}