티스토리 뷰

 

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

 

6588번: 골드바흐의 추측

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

www.acmicpc.net

 

//https://www.acmicpc.net/problem/6588
// 골드바흐의 추측

const input: number[] = require('fs').readFileSync('./dev/stdin').toString().trim().split('\n').map(Number);
input.pop();
const isPrime = new Array(1000001).fill(true);
isPrime[0] = false;
isPrime[1] = false;
for (let i = 2; i * i <= 1000000; i++) {
	if (isPrime[i]) for (let j = i * i; j <= 1000000; j += i) isPrime[j] = false;
}

console.log(
	input
		.map((v) => {
			const half = v / 2;

			for (let i = 3; i <= half; i++) {
				if (!isPrime[i]) continue;
				if (!isPrime[v - i]) continue;
				return `${v} = ${i} + ${v - i}`;
			}
			return "Goldbach's conjecture is wrong.";
		})
		.join('\n')
);
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함