Cod sursa(job #330672)

Utilizator ionutz32Ilie Ionut ionutz32 Data 11 iulie 2009 10:28:41
Problema Frac Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.81 kb
var v:array[1..10] of int64;
n,p,a,b,m,d,x:int64;
i:longint;
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:=92;
for i:=1 to 17 do
    b:=b*10;
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.