Cod sursa(job #1803565)

Utilizator rangalIstrate Sebastian rangal Data 11 noiembrie 2016 16:37:39
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <bitset>
#define N 2000002
#define infile "ciur.in"
#define outfile "ciur.out"

using namespace std;

ifstream fin(infile);
ofstream fout(outfile);

bitset<N> v;
// 0 = prim, 1 != prim

long long n,i,ct;

void Ciur(int n)
{
    ct=1;
    v[0]=v[1]=1;
    for(i=4; i<=n; i+=2)
        v[i]=1;
    for(i=3; i<=n; i+=2)
        if(!v[i])
            {   ++ct;
                for(long long  k=i*i; k<=n; k+=2*i)
                    v[k]=1;
            }
}

int main()
{
    fin>>n;
    Ciur(n);

    fout<<ct;

    fin.close(); fout.close();
    return 0;
}