문제 출처: https://www.acmicpc.net/problem/9020
유사 문제 참고: http://qlyh8.tistory.com/144?category=731166
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] args) throws Exception { boolean[] isPrimeArr = new boolean[10001]; Arrays.fill(isPrimeArr, true); isPrimeArr[0] = false; isPrimeArr[1] = false; for(int i=2 ; i<=100 ; ++i) { // 소수 구하기 if (isPrimeArr[i]){ for (int j=i+i; j<=10000; j+=i) isPrimeArr[j] = false; } } BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(reader.readLine()); StringBuilder builder = new StringBuilder(); for(int i=0 ; i<N ; i++){ int input = Integer.parseInt(reader.readLine()); for(int j=0; j<input; j++){ // 두 소수의 차이가 가장 작은 것을 출력 int num1 = input/2 - j; int num2 = input/2 + j; if(isPrimeArr[num1] && isPrimeArr[num2]) { builder.append(num1).append(" ").append(num2).append("\n"); break; } } } System.out.println(builder); } } | cs |
'Algorithm' 카테고리의 다른 글
백준 1193번: 분수찾기 (0) | 2018.10.24 |
---|---|
백준 2292번: 벌집 (0) | 2018.10.24 |
백준 4948번: 베르트랑 공준 (0) | 2018.10.21 |
백준 1929번: 소수 구하기 (0) | 2018.10.21 |
백준 2581번: 소수 (0) | 2018.10.21 |