https://www.acmicpc.net/problem/6588
6588번: 골드바흐의 추측
각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰
www.acmicpc.net
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
boolean[] notPrime = new boolean[1000001];
for (int i = 2; i < 1000001; i++) {
if (!notPrime[i]) {
for (int j = i * 2; j < 1000001; j += i) {
notPrime[j] = true;
}
}
} // sieve of Eratosthenes
while (true) {
int N = Integer.parseInt(br.readLine());
if (N == 0) break;
int a = 2;
while (true) {
// 둘 다 소수면
if (!notPrime[a] && !notPrime[N - a]) {
sb.append(N + " = " + a + " + " + (N - a) + "\n");
break;
}
// 두 소수의 합으로 N을 나타낼 수가 없는 경우
else if (N / 2 <= a) {
sb.append("Goldbach's conjecture is wrong.\n");
break;
}
else a++;
}
}
System.out.print(sb);
}
}
'OJ' 카테고리의 다른 글
[BOJ] 27512 스네이크 (JAVA) (0) | 2023.03.15 |
---|---|
[BOJ] 10867 중복 빼고 정렬하기 (JAVA) (0) | 2023.03.14 |
[BOJ] 21610 마법사 상어와 비바라기 (JAVA) (0) | 2023.03.12 |
[BOJ] 9466 텀 프로젝트 (JAVA) (2) | 2023.03.11 |
[BOJ] 14466 소가 길을 건너간 이유 6 (JAVA) (0) | 2023.03.10 |