Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <bitset>
- using namespace std;
- #define MAX 2147483647LL
- bitset<(MAX+5)>sieve;
- void filter()
- {
- int i, j, s = sqrt(MAX);
- sieve[0] = 1;
- sieve[1] = 1;
- for(i = 4; i <= MAX; i += 2)sieve[i] = true;
- for(i = 3; i <= s; i += 2){
- if(!sieve[i]){
- for(j = i*i; j <= MAX; j += (i+i))sieve[j] = true;
- }
- }
- }
- int main()
- {
- filter();
- cout << "Number of primes from 2 to 2^31: " << MAX-sieve.count() << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement