Cod sursa(job #468282)

Utilizator lianaliana tucar liana Data 2 iulie 2010 22:18:20
Problema Factorial Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.92 kb
program fact;
var f, g:text;
    p, x, m, s2, s5, st, dr:longint;
    ok:boolean;

function min(a,b:longint):longint;
  begin
    if a<b then
      min:=a
     else
       min:=b;
  end;

procedure verificare;
  begin
    x:=m;
    s2:=0;
    while x>0 do
      begin
        x:=x div 2;
        s2:=s2+x;
      end;
    x:=m;
    s5:=0;
    while x>0 do
      begin
        x:=x div 5;
        s5:=s5+x;
      end;
    if min(s2,s5)>=p then
      ok:=true
     else
       ok:=false;
  end;

procedure rezolvare;
  begin
    st:=1;
    dr:=100000000;
    while st<=dr do
      begin
        m:=st+(dr-st) div 2;
        verificare;
        if ok then
          dr:=m-1
         else
           st:=m+1;
      end;
    writeln(g,st);
  end;

  begin
    assign(f,'fact.in'); reset(f);
    assign(g,'fact.out'); rewrite(g);
    readln(f,p);
    rezolvare;
    close(f);
    close(g);
  end.