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