Cod sursa(job #1988473)

Utilizator adriananicolaeAdriana Nicolae adriananicolae Data 3 iunie 2017 09:37:47
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("ciur.in");
ofstream out("ciur.out");
int n;
const int Nmax=2000001;
bitset<Nmax>v;
void ciur()
{
    v[0]=v[1]=1;
    for(int i=4;i<=Nmax;i+=2)
        v[i]=1;
    for(int i=3;i*i<=Nmax;i+=2){
        if(v[i]==0)
            for(int j=i*i;j<=Nmax;j+=2*i){
               v[j]=1;
            }
    }
}
int main()
{
    in>>n;
    int cnt=0;
    ciur();
    for(i=1;i<=n;i++)
        if(v[i]==0)
            cnt++;
    out<<cnt;
    return 0;
}