Cod sursa(job #583883)

Utilizator caen1c a e n caen1 Data 23 aprilie 2011 03:14:11
Problema Ciurul lui Eratosthenes Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.56 kb
/**
 * user: caen1
 * file: infoarena/ciur.c
 * date: 23 apr 2011
**/
#include <stdio.h>
#include <stdbool.h>

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

static bool a[N];

int main(void) {

    int n, i, j, cnt = 0;

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

    (void) scanf("%d", &n);

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

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

    printf("%d\n", cnt);

    return 0;
}