pprime.pas

来自「Magio牛的usaco源代码」· PAS 代码 · 共 58 行

PAS
58
字号
{
ID:maigoak1
PROG:pprime
}

program pprime;
var
  fin,fout:text;
  a,b,n:longint;
  i,j,k,dj,dt:integer;
  tmp:string;
function digit(x:longint):integer;
  var
    tmp:string;
  begin
    str(x,tmp);
    digit:=length(tmp);
  end;
function prime(x:longint):boolean;
  var
    i:integer;
  begin
    for i:=2 to trunc(sqrt(x)) do
      if x mod i=0 then begin
        prime:=false;
        exit;
      end;
    prime:=true;
  end;
begin
  assign(fin,'pprime.in');
  reset(fin);
  readln(fin,a,b);
  if b=100000000 then b:=99999999;
  close(fin);
  assign(fout,'pprime.out');
  rewrite(fout);

  for i:=digit(a) to digit(b) do begin
    if odd(i) then dj:=i div 2+1 else dj:=i div 2;
    for j:=power(10,dj-1) to power(10,dj)-1 do begin
      n:=j;
      str(j,tmp);
      if odd(i) then dt:=dj-1 else dt:=dj;
      for k:=dt downto 1 do
        n:=n*10+ord(tmp[k])-48;
      if n>b then begin
        close(fout);
        halt;
      end;
      if prime(n) then if n>=a then writeln(fout,n);
    end;
  end;

  close(fout);
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?