Notice
Recent Posts
Recent Comments
Link
뮁이의 개발새발
[JAVA] 백준 6588 골드바흐의 추측 본문
오랜만에 알고리즘 하니까 머리가 안굴러가네욤....
소수판별을 맨 처음부터 세팅해놓고 진행하기
ㄴ 비슷한 문제로 에라토스테네스의 체 ? 가 있음
시간초과 자꾸나서 소수판별 로직을 바꾸었음 자세한 내용은 주석 참고
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class bj6588 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
boolean[] isPrime = new boolean[1000001];
isPrime[0] = true; // 소수를 false로 함
isPrime[1] = true;
// 처음엔 다 prime(false)으로 세팅
// 배수는 prime이 아니므로 true
for (int i = 2; i <= (int) Math.sqrt(1000000); i++) {
for (int j = 2; i * j < 1000001; j++) {
isPrime[i * j] = true; // 소수가 아님
}
}
while (true) {
int n = Integer.parseInt(in.readLine());
if (n == 0) {
break;
}
boolean ans = false;
for (int i = 2; i <= n / 2; i++) {
if (!isPrime[i] && !isPrime[n - i]) {
System.out.println(n + " = " + i + " + " + (n - i));
ans = true;
break;
}
}
if (ans == false) {
System.out.println("Goldbach's conjecture is wrong.");
}
}
}
}
'Algorithm' 카테고리의 다른 글
[JAVA] Greedy 알고리즘 (with 이코테) (0) | 2021.12.09 |
---|---|
[JAVA] 백준 20291 파일 정리 (Map, TreeMap) (0) | 2021.12.09 |
[JAVA] 백준 11660 구간 합 구하기 5 (DP) (0) | 2021.11.30 |
[JAVA] 백준 7569 토마토 (BFS) (0) | 2021.11.09 |
[JAVA] 백준 15651 N과 M(3) (0) | 2021.11.09 |
Comments