Advertisement
raliev

Untitled

May 29th, 2012
721
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <cmath>
  6. #include <assert.h>
  7.  
  8. using namespace std;
  9.  
  10. const int MAX_NUMBER = (int)1e7;
  11. vector<bool> is_prime(MAX_NUMBER + 10, true);
  12. vector<int> prime(6.7e5);
  13. int count_prime = 0;
  14.  
  15. void Eratosphen()
  16. {
  17.     is_prime[0] = is_prime[1] = false;
  18.     for (size_t i = 2; i <= MAX_NUMBER; ++i)
  19.         if (is_prime[i])
  20.         {
  21.             if ((long long)(i) * (long long) (i) < MAX_NUMBER)
  22.                 for (size_t j = i * i; j <= MAX_NUMBER; j += i)
  23.                     is_prime[j] = false;
  24.             prime[count_prime++] = (i);
  25.         }
  26. }
  27.  
  28. int main()
  29. {
  30.     //freopen("threeprimes.in", "r", stdin);
  31.     //freopen("threeprimes.out", "w", stdout);
  32.     int k;
  33.     cin >> k;
  34.     Eratosphen();
  35.     for (size_t i = 0; i < count_prime; i++)
  36.     {
  37.         size_t p = prime[i];
  38.         if (p * 2 > MAX_NUMBER)
  39.             break;
  40.         if (is_prime[2 * p - 1])
  41.             if (k == 1)
  42.             {
  43.                 cout << p << " " << p << " " << 2 * p - 1 << endl;
  44.                 return 0;
  45.             }
  46.             else k--;
  47.         if (is_prime[2 * p + 1])
  48.             if (k == 1)
  49.             {
  50.                 cout << p << " " << p << " " << 2 * p + 1 << endl;
  51.                 return 0;
  52.             }
  53.             else k--;
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement