Cod sursa(job #1096069)
Utilizator | Data | 1 februarie 2014 14:57:48 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.42 kb |
#include <stdio.h>
#include <stdlib.h>
char ciur[2000000000];
int main()
{
int n,i,c=0,j;
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n);
for(i=1; ((i<<1)+1)*((i<<1)+1)<=n; i++)
if(ciur[i]==0){
c++;
for(j=((i<<1)+1); (j<<1)+1<=n; j+=((i<<1)+1)<<1)
ciur[j]=1;
}
printf("%d",c+1);
return 0;
}