Pagini recente » Cod sursa (job #215172) | Cod sursa (job #2783055) | Cod sursa (job #468226) | Cod sursa (job #1209578) | Cod sursa (job #330669)
Cod sursa(job #330669)
var v:array[1..10] of int64;
n,p,a,b,m,d,x:int64;
f,g:text;
function nrp(nr,fact:int64):int64;
var c:int64;
begin
c:=nr div v[fact];
if fact=1 then
nrp:=c
else
nrp:=nrp(nr,fact-1)+c-nrp(c,fact-1);
end;
begin
assign(f,'frac.in');
assign(g,'frac.out');
reset(f);rewrite(g);
read(f,n,p);
d:=1;
while n<>1 do
begin
d:=d+1;
if n mod d=0 then
begin
x:=x+1;
v[x]:=d;
end;
while n mod d=0 do
n:=n div d;
end;
a:=1;b:=9.2e18;
while a<=b do
begin
m:=a+(b-a) div 2;
if m-nrp(m,x)>=p then
b:=m-1
else
a:=m+1;
end;
write(g,b+1);
close(f);close(g);
end.