본문 바로가기
코딩/백준-자바

[자바] 백준 6588번: 골드바흐의 추측

by 철없는민물장어 2023. 1. 30.
728x90
반응형

https://www.acmicpc.net/problem/6588

 

6588번: 골드바흐의 추측

각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰

www.acmicpc.net

 

에라토스테네스의 체 알고리즘으로 소수를 판별해놓고,

 

반복문으로 i를 2~100만까지 증가시키면서

i가 소수이고, n-i가 소수인 경우에 출력한다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class P6588 {

	static boolean[] prime = new boolean[1000001];

	public static void main(String[] args) throws IOException {

		for (int i = 2; i < 1000001; i++) {
			prime[i] = true;
		}

		for (int i = 2; i < 1000001; i++) {
			if (prime[i] == true) {
				for (int j = i * 2; j < 1000001; j += i) {
					prime[j] = false;
				}
			}
		}

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n;
		while ((n = Integer.parseInt(br.readLine())) != 0) {

			for (int i = 0; i < n; i++) {
				if (prime[i] == true && prime[n - i] == true) {
					System.out.println(n + " = " + i + " + " + (n - i));
					break;
				}
			}

		}
	}

}
728x90
반응형

댓글