Cod sursa(job #1244734)

Utilizator js3292618Andrei Mihai js3292618 Data 18 octombrie 2014 00:47:07
Problema Ciurul lui Eratosthenes Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.5 kb
#include <stdio.h>

#define IN "ciur.in"
#define OUT "ciur.out"
#define NMAX 2000000

static char c[NMAX];

static int ciur(int n)
{
    int i, j, cnt = 0;

    for (i = 2; i * i <= n; i++)
        if (!c[i])
            for (j = i * i; j <= n; j += i)
                c[j] = 1;

    for (i = 2; i <= n; i++)
        cnt += 1 - c[i];

    return cnt;
}

int main(void)
{
    int n;

    freopen(IN, "r", stdin);
    freopen(OUT, "w", stdout);

    scanf("%d", &n);
    printf("%d\n", ciur(n));

    return 0;
}