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