반응형
문제 링크 : https://www.acmicpc.net/problem/6588
6588번: 골드바흐의 추측
문제 1742년, 독일의 아마추어 수학가 크리스티안 골드바흐는 레온하르트 오일러에게 다음과 같은 추측을 제안하는 편지를 보냈다. 4보다 큰 모든 짝수는 두 홀수 소수의 합으로 나타낼 수 있다.
www.acmicpc.net
> 풀이
에스토스테네스의 체 알고리즘을 사용합니다.
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
bool check[1000001];
vector<int> prime;
int main(void) {
for (int i = 0; i < 1000001; i++) check[i] = true;
for (int i = 2; i * i <= 1000000; i++) {
if (check[i] == true)
for(int j = i + i; j <= 1000000; j += i)
check[j] = false;
}
for(int i = 2; i <= 1000000; i++) {
if (check[i] == true)
prime.push_back(i);
}
while (true) {
int n;
scanf("%d", &n);
if (n == 0) break;
for (int i = 1; prime[i] < n; i++) {
int n2 = n - prime[i];
if (check[n2]) {
printf("%d = %d + %d\n", n, prime[i], n2);
break;
}
}
}
return 0;
}
(개발 환경 : vs code)
반응형
'알고리즘 (백준) > BOJ 길라잡이 (1)' 카테고리의 다른 글
백준 1260 (DFS와 BFS) / C++ (0) | 2020.07.21 |
---|---|
백준 1016 (제곱 ㄴㄴ 수) / C++ (0) | 2020.07.20 |
백준 1644 (소수의 연속합) / C++ (0) | 2020.07.20 |
백준 2485 (가로수) / C++ (0) | 2020.07.17 |
백준 2580 (스도쿠) / C++ (0) | 2020.07.16 |