Cod sursa(job #155196)
| Utilizator | Data | 11 martie 2008 19:50:28 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.91 kb |
var f,g:text;
p:array[2..2000000] of 0..1;
n,i,j,d,m:longint;
begin
assign(f,'ciur.in');
reset(f);
readln(f,n);
close(f);
m:=n-1;
fillchar(p,n-1,1);
d:=2;
while d<=n do
begin
while p[d]=0 do d:=d+1;
j:=d+d;
while j<=n do
begin
if p[j]=1 then
begin
dec(m);
p[j]:=0;
end;
j:=j+d;
end;
d:=d+1;
end;
assign(g,'ciur.out');
rewrite(g);
write(g,m); {
if m<=1000 then
for i:=2 to n do
begin
if p[i]=1 then write(g,i,' ');end
else for i:=2 to n do
if p[i]=1 then begin
if m<=1000 then
write(g,i,' ')
else dec(m);
end; }
close(g);
end.
