Cod sursa(job #583883)
Utilizator | 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;
}