Cod sursa(job #212786)

Utilizator mishuMihai Grigoras mishu Data 6 octombrie 2008 20:45:13
Problema Ciurul lui Eratosthenes Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>

#define FIN "ciur.in"
#define FOUT "ciur.out"

#define NMAX 2000004

FILE *f, *g;

char A[NMAX];
long n, nr = 1;

int main() {
        long i, j;

        f = freopen(FIN, "r", stdin);
        g = freopen(FOUT, "w", stdout);

        scanf("%ld", &n);

        for (i = 2; i <= n; A[i] = 1, i += 2);

        for (i = 3; i <= n; i++) {
                if (!A[i]) {
                    A[i] = 1;
                    nr++;
                    for (j = i + i; j <= n; A[j] = 1, j += i);
                }
        }

        printf("%ld\n", nr);

        fclose(f);
        fclose(g);
        return 0;
}