Cod sursa(job #209115)
| Utilizator | Data | 20 septembrie 2008 20:05:50 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.41 kb |
#include <stdio.h>
#include <math.h>
FILE *fin,*fout;
bool p[2000001];
long i,j,n,n2,prim=0;
int main(){
fin=fopen("ciur.in","r");
fout=fopen("ciur.out","w");
fscanf(fin,"%ld",&n);
n2=sqrt(n);
for(i=2;i<=n2;i++)
if(!p[i])
for(j=i*i;j<=n;j+=i) p[j]=1;
for(i=2;i<=n-1;i++)
if(!p[i]) prim++;
fprintf(fout,"%ld\n",prim);
fclose(fin); fclose(fout);
return(0);
}
