Cod sursa(job #652438)

Utilizator veleanduAlex Velea veleandu Data 24 decembrie 2011 14:48:44
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;

long n,i,j,s;
char  V[250000];

ifstream in("ciur.in");
ofstream out("ciur.out");

int main()
{
    in>>n;
    for ( i=2; i<=sqrt(n); i++)
        if ( (V[i>>3]&(1<<(i&7))) == 0 )
        {
            for ( j=i*i; j<=n; j+=i )
                V[j>>3]|=(1<<(j&7));
        }
    for ( i=2; i<=n; ++i )
    {
        if ( (V[(i>>3)]&(1<<(i&7))) ==0 )
            s++;
    }
    out<<s<<"\n";
    return 0;
}