Cod sursa(job #633553)
| Utilizator | Data | 13 noiembrie 2011 23:56:42 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.44 kb |
#include<cstdio>
#include<bitset>
using namespace std;
int n, m;
bitset <2000001> bits;
int main() {
int i;
freopen("ciur.in", "r", stdin), freopen("ciur.out", "w", stdout);
scanf("%d", &n);
bits.set(), bits.set(0, 0), bits.set(1, 0);
for(i = 2; i <= n; i++)
if(bits.test(i)) {
m++;
int k = 2;
while(i * k <= n) {
bits.set(i * k, 0);
k++;
}
}
printf("%d\n", m);
return 0;
}
