Cod sursa(job #1350756)
Utilizator | Data | 20 februarie 2015 22:21:55 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.57 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; i<=N; i+=2)
if(!v[i])
{
P[++P[0]]=i;
for(int j=2*i; j<=N; j+=i)
if(!v[j]) v[j]=1;
}
}
int main()
{
f>>N;
Ciur(N);
g<<P[0]<<'\n';
f.close();g.close();
return 0;
}