Cod sursa(job #144726)

Utilizator Pepelea_FlaviuFlaviu Pepelea Pepelea_Flaviu Data 27 februarie 2008 21:34:18
Problema Ciurul lui Eratosthenes Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.69 kb
var fi,fo:text;
    n,i,j:int64;
    prim:array[1..2000010]of byte;
    prime:array[1..2000000]of longint;
    k,m,ct:longint;
begin
  assign(fi,'ciur.in'); reset(fi);
  assign(fo,'ciur.out'); rewrite(fo);
  read(fi,n);
  i:=3;
  ct:=1; prime[1]:=2;
  while i<=n do
    begin
      if prim[i]=0 then
        begin
          j:=i*i;
          inc(ct);
          prime[ct]:=i;
          while j<=n do
            begin
              prim[j]:=1;
              inc(j,i);
            end;
        end;
      inc(i,2);
    end;
  writeln(fo,ct);
  if ct>1000 then m:=ct-999
             else m:=1;
  for k:=m to ct do
    write(fo,prime[k],' ');
  close(fi);
  close(fo);
end.