컴공 공부/백준

[백준 알고리즘] 9020번 골드바흐의 추측 자바

무무뭉? 2021. 1. 7. 17:18
import java.util.Scanner;
 
public class Main {
 
	/*
		false : 소수
		range : 0 ~ 10000
	*/
	public static boolean[] prime = new boolean[10001];
 
	public static void main(String[] args) {
 
		Scanner in = new Scanner(System.in);
		
		get_prime();
 
		int T = in.nextInt();	// 테스트케이스
 
		while (T-- > 0) {
			int n = in.nextInt();
			int first_partition = n / 2;
			int second_partition = n / 2;
 
			while (true) {
            
				// 두 파티션이 모두 소수일 경우
				if (!prime[first_partition] && !prime[second_partition]) {
					System.out.println(first_partition + " " + second_partition);
					break;
				}
				first_partition--;
				second_partition++;
			}
		}
 
	}
 
	// 에라토스테네스의 체
	public static void get_prime() {
		prime[0] = prime[1] = true;
 
		for (int i = 2; i <= Math.sqrt(prime.length); i++) {
			if (prime[i])
				continue;
			for (int j = i * i; j < prime.length; j += i) {
				prime[j] = true;
			}
		}
	}
 
}