Cod sursa(job #238544)
| Utilizator | Data | 2 ianuarie 2009 15:59:11 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <cstdio>
#include <vector>
using namespace std;
#define N 2000005
vector<bool> v;
int n,x;
int ciur(){
int i,j,nr=1;
x=1;
for (i=3;i<=n;i+=2)
if (v[i]==false){
++x;
++nr;
if (i<=32000)
for (j=i*i;j<=n;j+=i)
v[j]=true;
}
return nr;
}
int main(){
//timer t;
int i;
v.resize(N);
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n);
printf("%d\n",ciur());
return 0;
}
