Cod sursa(job #744212)

Utilizator psycho21rAbabab psycho21r Data 8 mai 2012 02:05:47
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>
#include <vector>

using namespace std;

vector<int> V(131072);

int main()
{
    int N, primes = 0;
    ifstream in("ciur.in");
    in >> N;
    in.close();
    for(int i = 3; i <= N; i += 2)
    {
        if(V[i >> 4] & (1 << ((i >> 1) & 7)))
            continue;
        ++primes;
        for(int k, j = i + (k = i + i); j <= N; j += k)
            V[j >> 4] |= 1 << ((j >> 1) & 7);
    }
    ofstream out("ciur.out");
    out << primes + 1;
    out.close();
    return 0;
}