Cod sursa(job #1479957)

Utilizator teodorgTeodor G teodorg Data 1 septembrie 2015 18:47:51
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream>
#include <bitset>

using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
int n,i,j,cnt=1,start,jump;
bitset<1000010> v;
int main()
{
    f>>n;if(n%2==1)n--;
    n=(n-1)/2;
    for (i=1;2*i*i+2*i<=n;i++)
        if(!v[i])
        {
            cnt++;
            start=2*i*i+2*i;
            jump=2*i+1;
            for(j=start;j<=n;j+=jump)
                        v[j]=1;
        }
    for(;i<=n;i++)
        if(!v[i])
            cnt++;
    g<<cnt<<'\n';
    return 0;
}