Cod sursa(job #2290661)

Utilizator sabinpocrisSabin P sabinpocris Data 26 noiembrie 2018 20:10:00
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.4 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");

bitset<1000010> c;
int n;
int main()
{
    f>>n;
    if(n<2) {g<<"0";return 0;}
    if(n==2){g<<"1";return 0;}
    if(n%2==0)n--;
    c[0]=1;
    for(int i=1,m=3;m*m<=n;i++,m+=2)
        if(!c[i])
            for(int j=2*i*i+2*i;2*j+1<=n;j+=m)
                    c[j]=1;
    g<<n/2-c.count()+2;
    return 0;
}