PNUMBER - Tìm số nguyên tố

Tác giả: flashmt

Ngôn ngữ: Pascal

var a,b,i,j,k:longint;
    d:array[1..200000] of boolean;

begin
     read(a,b);
     k:=trunc(sqrt(b));
     for i:=1 to k shr 1 do
         if not d[i shl 1+1] then
         begin
              j:=(i shl 1+1)*3;
              while j<=b do
              begin
                   d[j]:=true;
                   j:=j+(i shl 1+1) shl 1;
              end;
         end;
     d[1]:=true;
     for i:=a to b do
         if (i=2) or (odd(i) and not d[i]) then writeln(i);
end.

Download