#include #include #include using namespace std; #define MAX (1LL<<30) bitset *sieve = 0; bitset *seen = 0; long long unseen = 1; long long other(long long p) { seen->set(p); while (unseentest(unseen)) { unseen++; } for (long long v=unseen; p+vtest(v) && !sieve->test(p+v)) { return v; } } cerr << "# the end" << endl; exit(0); } int main() { sieve = new bitset; sieve->set(0); sieve->set(1); for (long long n=2; ntest(n)) { for (long long m=n*n; mset(m); } } } seen = new bitset; long long k = 0; long long mx = -1; long long v = 1; for (long long n=1;; n++) { long long d = abs(v-n); if (mx