Cod sursa(job #342248)
| Utilizator | Data | 21 august 2009 00:38:31 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.43 kb |
#include <fstream.h>
#include <math.h>
#define MAXN 1000000
char C[MAXN];
long N;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
void ciur()
{
long i,j;
for(i=3;i<=sqrt(N);i=i+2)
if(C[(i-1)/2]==0)
for(j=i*i;j<=N;j=j+2*i)
C[(j-1)/2]=1;
}
int main()
{
fin>>N;
ciur();
long i,x;x=0;
for(i=0;i<=(N-1)/2;i++)
if(C[i]==0) {x=x+1;}
fout<<x<<"\n";
fin.close();
fout.close();
return 0;
}
