POWER - Lũy thừa
Tác giả: RR
Ngôn ngữ: Pascal
{$R+,Q+}
const
oo=1000000000000;
max:array[1..40] of int64=
(oo,1000000,10000,1000,252,100,52,32,22,16,13,10,9,8,7,6,6,5,5,4,4,4,4,4,4,3,
3,3,3,3,3,3,3,3,3,3,3,3,3,2);
var
k,x,y:int64;
test,t:longint;
function power(x,k:int64):int64;
var
kq,m:int64;
begin
if k=0 then exit(1)
else if k=1 then exit(x);
m:=k div 2;
kq:=power(x,m); kq:=kq*kq;
if k mod 2=0 then exit(kq)
else exit(kq*x);
end;
procedure solve;
var
l,r,mid,p:int64;
kk:longint;
begin
for kk:=40 downto 1 do
begin
l:=1; r:=max[kk]+1;
if kk=12 then
begin
write('');
end;
repeat
mid:=(l+r) div 2;
p:=power(mid,kk);
if (x<=p) and (p<=y) then
begin
k:=kk;
exit;
end;
if p>y then r:=mid
else l:=mid;
until r-l<=1;
end;
end;
begin
readln(t);
for test:=1 to t do
begin
readln(x,y);
solve;
writeln('Case #',test,': ',k);
end;
end.