Cod sursa(job #966453)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 25 iunie 2013 22:05:03
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#include <bitset>

using namespace std;

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

bitset <2000005> prim;
int n,sol;

int main()
{
    f>>n;
    if(n<2){g<<0<<'\n';return 0;}
    if(n==2){g<<1<<'\n';return 0;}
    if(n==3){g<<2<<'\n';return 0;}
    sol=1;
    for(int i=4;i<=n;i+=2)prim[i]=1;
    for(int i=3;i<=n;i+=2)
        if(prim[i]==0)
            {
                sol++;
                for(int j=i;j<=n;j+=i)prim[j]=1;
            }
    g<<sol<<'\n';
    f.close(); g.close();
    return 0;
}