比赛 noip-081029 评测结果 EEEEEEEEEE
题目名称 最多因子数 最终得分 0
用户昵称 苏轼 运行时间 0.000 s
代码语言 Pascal 内存使用 0.00 MiB
提交时间 2008-10-29 21:18:03
显示代码纯文本
program fjz;

var i,j,a,b,ss,ans,u,p,max,maxn:longint;
    s:array[0..1000,1..2]of longint;
    f:text;

begin
 assign(f,'divsors.in');
 reset(f);
 readln(f,u,p);
 close(f);

 max:=0;
 for i:=u to p do
 begin
  b:=1;
  ss:=0;
  a:=i;
  ans:=1;
  s[0,1]:=0;

  while b<=sqrt(i) do
  begin
   b:=b+1;
   if a mod b=0 then
   begin
    if b<>s[ss,1] then
    begin
     if ss<>0 then
      ans:=ans*(s[ss,2]+1);
     inc(ss);
     s[ss,1]:=b;
     s[ss,2]:=1;
    end else
     inc(s[ss,2]);

    a:=a div b;
    b:=1;
   end;
  end;

  ans:=ans*(s[ss,2]+1);
  if ans>max then
  begin
   max:=ans;
   maxn:=i;
  end;
 end;

 assign(f,'divsors.out');
 rewrite(f);
 writeln(f,'Between ',u,' and ',p,',',maxn,' has a maximum of ',max,' divisors.');
 close(f);
end.