Cod sursa(job #1704878)
Utilizator | Data | 19 mai 2016 15:27:32 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include<iostream>
#include<bitset>
#include<cmath>
#include<fstream>
using namespace std;
long long n,i,j,nr=1;
bitset<10000000>a;
//a[i]=0=>2i+1=prim;
ifstream f("ciur.in");
int main()
{
f>>n;
f.close();
for(i=1;(i*i)<<1+i<<1<=n;++i)
{
if(a[i]<1)
{
for(j=(i*i)<<1+(i<<1);j<<1<n;j+=(i<<1)+1)a[j]=1;
}
}
for(i=1;(i<<1)<n;++i)if(a[i]<1)++nr;
ofstream g("ciur.out");
g<<nr;
g.close();
return 0;
}