Cod sursa(job #264243)
| Utilizator | Data | 21 februarie 2009 20:25:41 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include<stdio.h>
char vprim[2000001];
int main(){
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
vprim[0]='1';
vprim[1]='1';
int vsume[2001];
long long i,j,n;
scanf("%lld\n",&n);
for(i=2;i<=n;i++){
if(vprim[i]==NULL)
for(j=2;j*i<=n;j++)
vprim[j*i]='1';
}
vsume[0]=0;
for(i=1;i<=n;i++){
if(vprim[i]==NULL)
vsume[i]=vsume[i-1]+1;
else vsume[i]=vsume[i-1];
}
printf("%d\n",vsume[n]);
return 0;
}
