Cod sursa(job #234543)
| Utilizator | Data | 21 decembrie 2008 09:59:19 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.43 kb |
#include <fstream.h>
#include <stdio.h>
#include <mem.h>
#include <math.h>
FILE *f,*g;
int main()
{
f=fopen("ciur.in","r");
g=fopen("ciur.out","w");
long long n,i,j,p[2000000],k=0;
fscanf(f,"%lld",&n);
memset(p,1,n);
while(i<=sqrt(n)) if(p[i]==1) for(j=2*i;i<=n;j=j+i) p[j]=0;
else i++;
for(i=1;i<=n;i++) if(p[i]==1) k++;
fprintf(g,"%lld" , k);
fclose(f);
fclose(g);
return 0;
}
