Cod sursa(job #1350749)

Utilizator Dddarius95Darius-Florentin Neatu Dddarius95 Data 20 februarie 2015 22:20:12
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#include <bitset>
#define Nmax 2000099
#define Pmax 200000
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");

int N,P[Pmax];
bitset < Nmax > v;


void Ciur(int N)
{
    int i;
    P[++P[0]]=2;
    for (int i=4; i<=N; i+=2) v[i]=1;
    for(i=3; 1LL*i*i<=N; i+=2)
          if(!v[i])
          {
               P[++P[0]]=i;
               if(1LL*i*i<=1LL*N)
                    for(int j=2*i;j<=N;j+=2*i)
                         if(!v[j]) v[j]=1;
          }
}
int main()
{
    f>>N;
    Ciur(N);
    g<<P[0]<<'\n';
    f.close();g.close();
    return 0;
}