Cod sursa(job #338541)
| Utilizator | Data | 5 august 2009 22:59:43 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include<stdio.h>
const char in[]="ciur.in";
const char out[]="ciur.out";
const int maxN=1000003;
bool prim[maxN];
int main()
{
int i, j, n, nr = 1;
freopen(in,"r",stdin);
scanf("%d", &n);
for (i = 1; ((i * i) << 1) + (i << 1) <= n; ++i) {
if (prim[i] == false) {
for (j = ((i * i) << 1) + (i << 1); (j << 1) + 1 <= n; j += (i << 1) + 1) {
prim[j] = true;
}
}
}
for (i=1; 2 * i + 1 <= n; ++i)
if (prim[i] == false) ++nr;
freopen(out,"w",stdout);
printf("%d\n",nr);
return 0;
}