[백준(Baekjoon)][자바(java)] (9020) 골드바흐의 추측 / 수학 2

728x90

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
		int i, j, t = Integer.parseInt( br.readLine() ), n, min, x, max = 10001;
		boolean a[] = new boolean[max];
		for( i = 2; i < max; i++ ) 
			a[i] = true;
		for( i = 2; (i*i) <= max; i++ ) 
			if( a[i] ) 
				for( j = (i*2); j < max; j+=i )	
					a[j] = false;
		StringBuilder sb = new StringBuilder();
		while( t-- > 0 ) {
			n = Integer.parseInt( br.readLine() );
			min = 10000; 
			x = 0;
			for( i = 2; i < n; i++ ) {
				if( a[i] && a[n-i] ) {
					if( min > n-2*i && i <= n-i ) {
						min = n-2*i;
						x = i;
					}
					else	break;
				}
			}
			sb.append( x + " " + (n-x) + "\n" );
		}
		br.close();
		System.out.println(sb.toString());
	}

}

 

 

반응형