Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<bits/stdc++.h>using namespace std;const int M = 1e6 + 10;int n, p, q;bool is[M];vector<int> prime;set<int> s;void Init() {memset(is, false, sizeof(is));for (int i = 2; i * i < M; i++) {if (is[i]) continue;for (int j = i * i; j < M; j += i) {is[j] = true;}}prime.clear();s.clear();for (int i = 2; i < M; i++) {if (is[i]) continue;// if (i < 100)// printf("i = %d\n", i);prime.push_back(i);s.insert(i);}}void Solve() {for (int i = 0; i < prime.size(); i++) {p = prime[i];q = n - p;if (p > q) break;if (s.count(q)) return ;