Advertisement
RaFiN_

simple sieve

Sep 6th, 2020
1,280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.44 KB | None | 0 0
  1. //simple sieve
  2. bitset<N> arr;ll prime[N],p;
  3.  
  4. void sieve(int n) {
  5.     for(int i = 0; i <= n; i++) arr[i] = 0;
  6.     double z = sqrt(n);
  7.     arr[0] = arr[1] = 1;
  8.     for(int i = 4; i <= n; i += 2) arr[i] = 1;
  9.     for(int i = 3; i <= z; i += 2) {
  10.         if(arr[i] == 0)
  11.         for(ll j = i*i; j <= n; j += i + i) {
  12.             arr[j] = 1;
  13.         }
  14.     }
  15.     prime[p++] = 2;
  16.     for(int i = 3; i <= n; i += 2) if(!arr[i]) prime[p++] = i;
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement