Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <vector>
- using namespace std;
- #define TABLE_SIZE 1000001
- bool is_prime[TABLE_SIZE+1];
- int n, m;
- void makePrimeTable(void) {
- for (int i = 2; i <= TABLE_SIZE; ++i)
- is_prime[i] = true;
- for (int i = 2; i * i <= TABLE_SIZE; ++i)
- if (is_prime[i])
- for (int j = i * 2; j <= TABLE_SIZE; j += i)
- is_prime[j] = false;
- }
- int main(int argc, char const *argv[]) {
- int n, p;
- makePrimeTable();
- while (cin >> n >> p && ~n) {
- vector < int > prime, matsu;
- for (int i = n + 1; i <= n + 1000; ++i)
- if (is_prime[i]) prime.push_back(i);
- for (int i = 0; i < prime.size(); ++i)
- for (int j = i; j < prime.size(); ++j)
- matsu.push_back(prime[i] + prime[j]);
- sort(matsu.begin(), matsu.end());
- cout << matsu[p-1] << endl;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment