Cod sursa(job #145098)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 28 februarie 2008 13:31:48
Problema Ciurul lui Eratosthenes Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.03 kb
var f,g:text;
a:array[1..50000]of longint;
p,n,i,j:longint;
function prim(i:longint):boolean;
var q:boolean;
j:longint;
begin
q:=true;
if i mod 2 =0 then  q:=false;
if q then
begin
j:=3;
while j<=trunc(sqrt(i)) do
   begin
   if i mod j =0 then begin q:=false;break;end;
   j:=j+2;
   end;
end;
prim:=q;
end;
begin
assign(f,'ciur.in');
reset(f);
readln(f,n);
close(f);
assign(g,'ciur.out');
rewrite(g);
if n<3 then  begin writeln(g,1);writeln(g,2); end
    else
      begin
        p:=1;
        a[p]:=2;
        i:=3;
        while i<n+1 do
               begin
               if prim(i) then begin
                               p:=p+1;
                               a[p]:=i;
                               end;
                 i:=i+2;
                 end;
        writeln(g,p);
        if p<1001 then for i:=1 to p do
                                write(g,a[i],' ')
                   else for i:=p-999 to p do
                                   write(g,a[i],' ');
          end;
close(g);
end.