문제 출처: 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=; 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=; i<N ; i++){
            int input = Integer.parseInt(reader.readLine());
            
            for(int j=0; j<input; j++){
                // 두 소수의 차이가 가장 작은 것을 출력
                int num1 = input/- j;
                int num2 = input/+ 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

+ Recent posts