Cod sursa(job #1600666)

Utilizator robert.stefanRobert Stefan robert.stefan Data 15 februarie 2016 12:05:16
Problema Ciurul lui Eratosthenes Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
#include <stdlib.h>

#define IN "ciur.in"
#define OUT "ciur.out"
#define DMAX 2000005

char prim[DMAX];

int eratosthene (int n) {
    int i, j, nrPrime = 0;

    for(i = 1; i <= n; ++i)
        prim [i] = 1;

    for(i = 2; i <= n; ++i)
        if (prim [i]) {
            ++ nrPrime;
            for (j = i + i; j <= n; j = j + i)
                prim [j] = 0;
        }

    return nrPrime;
}

int main() {
    int n;

    FILE *fin, *fout;
    fin = fopen(IN, "r");
    fout = fopen (OUT, "w");

    fscanf (fin, "%d", &n);
    fprintf (fout, "%d\n", eratosthene (n));

    fclose (fin);
    fclose (fout);
    return 0;
}