Cod sursa(job #353009)
Utilizator | Data | 3 octombrie 2009 21:29:14 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include <stdio.h>
#include <stdlib.h>
char p[5000001];
int main()
{
long n=0, i, j, nr=0;
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
scanf("%ld", &n);
if(n>=2)
nr++;
for(i=1; i<n/2; i++)
{
if(p[i]==0)
{
nr++;
if(i<10000)
for(j=2*i*i+2*i; j<n/2; j+=2*i+1)
p[j]=1;
}
}
printf("%ld", nr);
return 0;
}