Cod sursa(job #229450)
Utilizator | Data | 10 decembrie 2008 11:41:19 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.33 kb |
#include <cstdio>
#include <bitset>
using namespace std;
bitset<2000001> ciur;
int main() {
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
int n;
scanf("%d", &n);
int cnt = 0;
for (int i = 2; i <= n; ++i) if (!ciur[i]) {
cnt++;
for (int j = i << 1; j <= n; j+=i) ciur[j] = 1;
}
printf("%d\n", cnt);
return 0;
}