main
[백준-9020번/Java] 골드바흐의 추측 본문
* 소수판정 : 제곱근 범위 나누기법 사용
* 두 소수의 차이가 가장 작은 골드바흐 파티션을 찾기 위해서 num/2 부터 1씩 줄여 나가면서 찾음.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
Scanner scan = new Scanner(System.in);
int[] arr = new int[10000 + 1];
for (int i = 1; i < arr.length; i++) {
if (i == 1) {
arr[i] = -1;
} else {
arr[i] = i;
}
}
// 제곱근 범위 나누기법
for (int i = 3; i < arr.length; i++) {
for (int j = 2; j <= Math.sqrt(i); j++) {
if (i != j && i % j == 0) {
arr[i] = -1;
}
}
}
int T = scan.nextInt();
int num1 = 0;
int num2 = 0;
for (int i = 0; i < T; i++) {
int num = scan.nextInt();
for (int j = num / 2; j > 0; j--) {
if (arr[j] != -1 && arr[num - j] != -1) {
num1 = arr[j];
num2 = arr[num - j];
break;
}
}
System.out.println(num1 + " " + num2);
}
scan.close();
}
}728x90
'Algorithm' 카테고리의 다른 글
| [백준-10845번/Java] 큐 (0) | 2022.11.14 |
|---|---|
| [백준-2609번/Java] 최대공약수와 최소공배수 (0) | 2022.11.14 |
| [백준-4948번/Java] 베르트랑 공준 (0) | 2022.11.13 |
| [백준-2581번/Java] 소수 (0) | 2022.11.13 |
| [백준-2564번/Java] 경비원 (0) | 2022.11.13 |
Comments