Advertisement
xerpi

P89124_en

Dec 2nd, 2013
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.73 KB | None | 0 0
  1. /*
  2.     Copyright (c) 2013    xerpi
  3. */
  4.  
  5. #include <iostream>
  6. #include <vector>
  7. #include <cmath>
  8. using namespace std;
  9.  
  10. const int MAX_N = 10000001;
  11.  
  12. void build_sieve(vector<bool>& sieve);
  13.  
  14. int main()
  15. {
  16.     vector<bool> sieve(MAX_N);
  17.     build_sieve(sieve);
  18.     int n;
  19.     while (cin >> n) {
  20.         if (sieve[n])
  21.             cout << n << " is prime" << endl;
  22.         else
  23.             cout << n << " is not prime" << endl;
  24.     }
  25.    
  26. }
  27.  
  28.  
  29. void build_sieve(vector<bool>& sieve)
  30. {
  31.     int size = sieve.size();
  32.     sieve[0] = false;
  33.     sieve[1] = false;
  34.     for (int i = 2; i < size; ++i) {
  35.         sieve[i] = true;
  36.     }
  37.     int limit = sqrt(size);
  38.     for (int i = 2; i < limit; ++i) {
  39.         if (sieve[i]) {
  40.             for (int j = 2*i; j < size; j+=i) {
  41.                 sieve[j] = false;
  42.             }
  43.         }
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement