728x90
https://www.acmicpc.net/problem/6588
6588번: 골드바흐의 추측
각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰
www.acmicpc.net
import java.io.*;
// 골드바흐의 추측
public class _6588 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 에라토스테네스의 체 이용
boolean[] arr = new boolean[1000001];
arr[0] = arr[1] = true;
for (int i = 2; i * i <= 1000000; i++) {
// i가 소수인 경우 --> i의 배수는 소수가 아님
if (!arr[i]) {
for (int j = i * i; j <= 1000000; j += i) {
arr[j] = true;
}
}
}
int input;
while ((input = Integer.parseInt(br.readLine())) != 0) {
for (int i = 2; i < input / 2; i++) {
if (!arr[i] && !arr[input - i]) {
bw.write(input + " = " + i + " + " + (input - i) + "\n");
break;
}
}
}
bw.flush();
bw.close();
}
}
MEMO
-- 에라토스테네스의 체를 이용하는 점이 핵심
!! 꼭 다시 복습하기 !!
728x90
728x90
'백준[baekjoon] > JAVA' 카테고리의 다른 글
백준(baekjoon) [JAVA] - 1463번: 1로 만들기 (0) | 2023.08.02 |
---|---|
백준(baekjoon) [JAVA] - 9613번: GCD 합 (0) | 2023.07.30 |
백준(baekjoon) [JAVA] - 1929번: 소수 구하기 (0) | 2023.07.25 |
백준(baekjoon) [JAVA] - 2609번: 최대공약수와 최소공배수 (0) | 2023.07.23 |
백준(baekjoon) [JAVA] - 11656번: 접미사 배열 (0) | 2023.07.23 |