Cod sursa(job #1469291)

Utilizator needforspeedRazor Callahan needforspeed Data 7 august 2015 22:29:20
Problema Ciurul lui Eratosthenes Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>

#define Nmax 2000005
///#define Pmax 348514
#define Nrp 150005
using namespace std;

bitset<Nmax> ciur;

int main()
{
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);

    int st = 0 ,vf,d,Pmax;
    scanf("%d",&Pmax);
    auto sieve = [&d,&vf,&st](int P)->void{
       vf = 2;
       for(int i = 1; vf <= P; ++i)
       if(ciur[i<<1|1] == false){
            d = (i<<1|1);
            vf = d;
            ++st;
            for(int j = 1; d*(j<<1|1) < P; ++j)
                ciur[d*(j<<1|1)] = true;
       }
    };
    sieve(Pmax);
    printf("%d\n",st);
    return 0;
}