Cod sursa(job #219515)
Utilizator | giuroiu marius mariuscris90 | Data | 7 noiembrie 2008 09:20:49 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 40 |
Compilator | fpc | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
program ciurul;
type vec=array[1..2000004] 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.