Cod sursa(job #144721)

Utilizator Pepelea_FlaviuFlaviu Pepelea Pepelea_Flaviu Data 27 februarie 2008 21:29:08
Problema Ciurul lui Eratosthenes Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.67 kb
var fi,fo:text;
    n,i,ct,j:int64;
    prim:array[1..2000010]of byte;
    prime:array[1..1001]of int64;
    k: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);
          if ct<1000 then 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 ct:=1000;
  for k:=1 to ct do
    write(fo,prime[k],' ');
  close(fi);
  close(fo);
end.