Cod sursa(job #2376830)
| Utilizator | Data | 8 martie 2019 17:59:57 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
#include <bitset>
using namespace std;
int n, i, j, sol;
bitset <2000001> f;
int main () {
ifstream fin ("ciur.in");
ofstream fout("ciur.out");
fin >> n;
sol = 1;
for (i=1; ((i*i)<<1)+(i<<1)<=n; i++){
if (f[i] == 0){
for (j=((i*i)<<1)+(i<<1); (j<<1)+1<=n; j+=(i<<1)+1){
f[j] = 1;
}
}
}
for (i=1; 2*i+1<=n; i++){
if (f[i] == 0)
sol++;
}
fout << sol;
return 0;
}
