Cod sursa(job #150197)
| Utilizator | Data | 6 martie 2008 18:46:08 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | fpc | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 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);
writeln(g,m);
for i:=2 to n do
if p[i]=1 then write(g,i,' ');
close(g);
end.