Cod sursa(job #1094691)
Utilizator | Data | 29 ianuarie 2014 18:48:35 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <fstream>
#include <cmath>
#define NMAX 2000001
using namespace std;
FILE* f=freopen("ciur.in","r",stdin);
FILE* o=freopen("ciur.out","w",stdout);
int n;
bool v[NMAX];
int count=1;
void Eratostene()
{
for(int i=3;i<=sqrt(n);i+=2)
if(!v[i]) {
for(int j=i*i;j<=n;j+=i)
v[j]=1;
}
}
int main()
{
scanf("%d",&n);
Eratostene();
for(int i=3;i<=n;i+=2) if(!v[i]) count+=1;
printf("%d",count);
return 0;
}