Cod sursa(job #1800788)

Utilizator MithrilBratu Andrei Mithril Data 8 noiembrie 2016 08:49:15
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <bits/stdc++.h>
using namespace std;

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

int ciur(int n){
    vector<bool> vizitat(n/2+1,false);
    for(int i=1;((i*i)<<1)+(i<<1) <= n ; i+= 1)
        if(!vizitat[i])
            for(int j=((i*i)<<1)+(i<<1);(j<<1)+1 <= n ; j += (i<<1)+1)
                vizitat[j]=true;
    int cnt=1;
    for(int i=1;2*i+1<=n;i+=1)
        if(!vizitat[i])
            cnt+=1;
    return cnt;
}

int main()
{
    int n;
    fin>>n;
    fout<<ciur(n);
    return 0;
}