Cod sursa(job #1600647)

Utilizator robert.stefanRobert Stefan robert.stefan Data 15 februarie 2016 11:40:43
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>
#include <stdlib.h>

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

char prim[DMAX];

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

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

    for(i = 2; i <= n; ++i)
        if (prim [i] == 1) {
            ++ 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);
}