-
백준 6588번 골드바흐의 추측 에라토스 테네스의 체 활용 문제풀이 ( Java )Problem Solving/Java 2019. 10. 22. 16:20반응형1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162public class Main {public static final int MAX = 1000000;public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));// reader writer 생성int n;int a;int b;boolean[] isNotPrime = new boolean[MAX + 1];// 소수 판별 배열 선언isNotPrime[0] = true;isNotPrime[1] = true;// 0과 1 제외for (int i = 2; i < MAX; i++) {if (isNotPrime[i] == false) {// 소수 찾으면for (int j = i + i; j <= MAX; j += i) {isNotPrime[j] = true;// 그 배수들 소수가 아니라 표시}}}// MAX까지 소수 판별하고while ((n = Integer.parseInt(br.readLine())) != 0) {for (int i = 3; i < n; i++) {// 표시된 소수 배열 3부터 돌면서if (isNotPrime[i] == false) {// 소수 찾으면a = i;// a를 소수에 넣고if (isNotPrime[n - a] == false) {// n-a가 aㄱ n-a번째 배열도 소수면b = n - a;// b도 찾았으니bw.write('\n');// 출력하고break;// 반복문 탈출}}}}}}
처음엔 n을 받을 때마다 소수 판별을 했더니 시간 초과가 나왔다
그래서 아예 MAX까지 소수를 구해놓고 입력 받을 때 마다 골드바흐의 추측만 증명했더니 클리어
반응형'Problem Solving > Java' 카테고리의 다른 글
백준 1676번 팩토리얼 0의 개수 문제 풀이 ( Java ) (0) 2019.10.22 백준 10872번 팩토리얼 문제풀이 ( Java ) (0) 2019.10.22 프로그래머스 소수 찾기 에라토스테네스의 체 활용 문제풀이 ( Java ) (0) 2019.10.22 백준 1929번 소수 구하기 에라토스 테네스의 체 활용 문제풀이 ( Java ) (0) 2019.10.22 백준 2609번 최대공약수와 최소공배수 문제풀이 ( Java ) (0) 2019.10.22