Cod sursa(job #153358)

Utilizator DastasIonescu Vlad Dastas 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;
}