Cod sursa(job #249063)

Utilizator belgun_adrianBelgun Dimitri Adrian belgun_adrian Data 27 ianuarie 2009 14:49:41
Problema Factorial Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.67 kb
// Arhiva de probleme - Factoria;



var
        i, p, p5, x, lo, hi, mi : longint;
        f                       : text;

        r5                      : array[1..8] of longint;

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

lo := 1;
hi := p*5;

r5[1] := 5;
for i := 2 to 8 do
     r5[i] := r5[i-1] * 5;

while (lo<=hi) do
      begin
      mi := lo + (hi-lo) shr 1;

      x  := mi;
      p5 := 0;
      for i:=1 to 8 do p5 := p5 + x div r5[i];

      if (p5 < p) then
          lo  := mi+1
      else
          hi  := mi-1;
      end;

assign  (f, 'fact.out');
rewrite (f);
writeln (f, mi);
close   (f);
end.