Cod sursa(job #153358)
| Utilizator | Data | 10 martie 2008 14:29:58 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.57 kb |
#include <cstdio>
const int maxn = 2000001;
FILE *in = fopen("ciur.in","r"), *out = fopen("ciur.out","w");
int n;
char x[maxn]; // x[i] = 1 daca i nu e prim
int sol[1001];
int main()
{
fscanf(in, "%d", &n);
for ( int i = 4; i <= n; i += 2 )
x[i] = 1;
int cnt = 1;
for ( int i = 3; i*i <= n; i += 2 )
if ( !x[i] )
for ( int j = i*i; j <= n; j += i )
x[j] = 1;
for ( int i = 3; i <= n; i += 2 )
if ( !x[i] )
++cnt;
fprintf(out, "%d\n", cnt);
return 0;
}
