Cod sursa(job #145760)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 29 februarie 2008 13:46:33
Problema Ciurul lui Eratosthenes Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.66 kb
program ciur;
var f,g:text;
    v:array[1..2000010]of 0..1;
    a:array[1..2000010]of longint;
    n,i,j,k,l:longint;
begin
assign(f,'ciur.in');
assign(g,'ciur.out');
reset(f);
rewrite(g);
read(f,n);
k:=1;
a[1]:=2;
for i:=1 to n div 2 do v[i*2]:=1;
i:=3;
while (i<=trunc(sqrt(n)))do
  begin
    if (v[i]=0)then
      begin
        for j:=2 to n div i do
          v[i*j]:=1;
      end;
    inc(k);
    a[k]:=i;
    inc(i,2);
  end;
for i:=trunc(sqrt(n))+1 to n do
  if (v[i]=0)then
    begin
      inc(k);
      a[k]:=i;
    end;
writeln(g,k);
if (k>1000)then l:=k-999 else l:=1;
for i:=l to k do write(g,a[i],' ');
close(f);
close(g);
end.