ac1118.pas

来自「Ural(Acm.timus.ru)题解 By Maigo大牛」· PAS 代码 · 共 35 行

PAS
35
字号
program ural1118;
var
  i,j,n,t,a:longint;
  m:real;
function divsum(x:longint):longint;
  var
    s,i:longint;
  begin
    s:=1;
    for i:=2 to trunc(sqrt(x)) do
      if x mod i=0 then inc(s,i+x div i);
    if sqr(trunc(sqrt(x)))=x then
      dec(s,trunc(sqrt(x)));
    divsum:=s;
  end;
begin
  readln(i,j);
  if i=1 then
    writeln(1)
  else begin
    m:=maxlongint;
    for n:=j downto i do begin
      t:=divsum(n);
      if t=1 then begin
        writeln(n);
        halt;
      end;
      if t/n<m then begin
        m:=t/n;a:=n;
      end;
    end;
    writeln(a);
  end;
end.

⌨️ 快捷键说明

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