Pagini recente » Cod sursa (job #1106347) | Cod sursa (job #2595237) | Cod sursa (job #2539328) | Cod sursa (job #2690170) | Cod sursa (job #58219)
Cod sursa(job #58219)
var f1,f2:text;
a:array[1..10000] of longint;
b:array[1..10000] of qword;
d,x,m,s1,s2,nr,max,p,s:int64;
i,j,n,q:longint;
procedure putere(d,x:longint);
begin
p:=1;
s:=0;
while p*d<=x do
begin
p:=p*d;
s:=s+x div p;
end;
end;
procedure search(li,ls:qword);
begin
m:=(li+ls) div 2;
putere(a[i],m);
s1:=s;
putere(a[i],m-1);
s2:=s;
if (s1>=b[i])and(s2<b[i]) then nr:=m
else if li<ls then if s1>=b[i] then search(li,m-1)
else search(m+1,ls);
end;
begin
assign(f1,'gfact.in');
reset(f1);
assign(f2,'gfact.out');
rewrite(f2);
read(f1,p,q);
nr:=2;j:=0;
while p<>1 do
begin
x:=1;
if p mod nr=0 then
begin
inc(j);
a[j]:=nr;
x:=0;
end;
while p mod nr=0 do
begin
inc(b[j]);
p:=p div nr;
end;
if x=0 then b[j]:=b[j]*q;
inc(nr,2);
end;
n:=j;
nr:=0;
max:=-maxlongint;
for i:=1 to n do
begin
search(1,a[i]*b[i]);
if nr>max then max:=nr;
end;
writeln(f2,m);
close(f1);
close(f2);
end.