Cod sursa(job #353008)
| Utilizator | Data | 3 octombrie 2009 21:28:26 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.48 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)
printf("2\n");
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+1);
return 0;
}
