Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <vector>
- #include <algorithm>
- #include <cmath>
- #include <assert.h>
- using namespace std;
- const int MAX_NUMBER = (int)1e7;
- vector<bool> is_prime(MAX_NUMBER + 10, true);
- vector<int> prime(6.7e5);
- int count_prime = 0;
- void Eratosphen()
- {
- is_prime[0] = is_prime[1] = false;
- for (size_t i = 2; i <= MAX_NUMBER; ++i)
- if (is_prime[i])
- {
- if ((long long)(i) * (long long) (i) < MAX_NUMBER)
- for (size_t j = i * i; j <= MAX_NUMBER; j += i)
- is_prime[j] = false;
- prime[count_prime++] = (i);
- }
- }
- int main()
- {
- //freopen("threeprimes.in", "r", stdin);
- //freopen("threeprimes.out", "w", stdout);
- int k;
- cin >> k;
- Eratosphen();
- for (size_t i = 0; i < count_prime; i++)
- {
- size_t p = prime[i];
- if (p * 2 > MAX_NUMBER)
- break;
- if (is_prime[2 * p - 1])
- if (k == 1)
- {
- cout << p << " " << p << " " << 2 * p - 1 << endl;
- return 0;
- }
- else k--;
- if (is_prime[2 * p + 1])
- if (k == 1)
- {
- cout << p << " " << p << " " << 2 * p + 1 << endl;
- return 0;
- }
- else k--;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement