Problem Solving/BOJ
[BOJ] 6588 : 골드바흐의 추측
shyram
2019. 1. 4. 20:35
소수를 한번에 구해주고, vector에 넣는다.
vector에 들어간 순서대로 탐색을 해준다.
두 홀수의 합으로 구성되지 않은 답은 없으므로, 두 소수를 찾으면 그 즉시 출력한다.
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 | #include <bits/stdc++.h> using namespace std; vector<int> vc; bool prime[1000001]; // false면 소수 int main() { ios::sync_with_stdio(0); cin.tie(NULL); for (int i = 3; i < 1000001; i++) { if (!prime[i]) vc.push_back(i); for (int j = i * 2; j < 1000001; j += i) prime[j] = true; } int temp; cin >> temp; while (temp) { for (int i = 0; i < vc.size(); i++) { if (!prime[vc[i]] && !prime[temp - vc[i]]) { cout << temp << " = " << vc[i] << " + " << temp - vc[i] << '\n'; break; } } cin >> temp; } return 0; } | cs |