Cod sursa(job #650927)
Utilizator | Data | 19 decembrie 2011 11:47:45 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include<stdio.h>
int main()
{
FILE *f, *g;
f=fopen ("ciur.in","r");
g=fopen ("ciur.out","w");
char v[2000001];
int i,n,j,nr=0;
fscanf(f,"%d",&n);
for(i=2;i<=n;i++)
v[i]='1';
for(i=2;i<=n; )
{
for(j=2*i;j<=n;j=j+i)
v[j]='0';
do
i++;
while(v[i]=='0' && i<=n);
}
for(i=2;i<=n;i++)
if(v[i]=='1')
nr++;
fprintf(g,"%d",nr);
fclose(f);
fclose(g);
return 0;
}