Cod sursa(job #219516)
| Utilizator | Data | 7 noiembrie 2008 09:22:08 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 40 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
program ciurul;
type vec=array[1..2000000] of boolean ;
var n,j,i,z,c,k,nr:longint;
f,g:text;
a:vec;
begin
assign(f,'ciur.in');assign(g,'ciur.out');reset(f);rewrite(g);
readln(f,n);
z:=2;
c:=2;
while z<n do begin
z:=z+c;
a[z]:=true;
end;
k:=3;
z:=1;
c:=1;
while k<n do begin
z:=k;
c:=k;
if a[z]=false then
while z<n do begin
z:=z+c;
a[z]:=true;
end;
k:=k+2;end;
nr:=0;
for i:=2 to n do if a[i]=false then nr:=nr+1;
write(g,nr);
close(f);close(g);end.
