Cod sursa(job #1022110)

Utilizator Mihai_ChihaiMihai Chihai Mihai_Chihai Data 4 noiembrie 2013 19:21:23
Problema Factorial Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.91 kb
program fact1;
const nmax=100000;
var min,max,mid,val,p:longint;
    u:boolean;
    f,g:text;
function fact(x:qword):qword;
var a,rez:integer;
begin
  a:=5; rez:=0;
  while (x div a<>0) do begin
                        rez:=rez+ x div a;
                        a:=a*5;
                        end;
  fact:=rez;
end;
begin
  assign(f,'fact.in'); reset(f); readln(f,p); close(f);
  assign(g,'fact.out'); rewrite(g);
  if p=0 then write(g,-1) else
    begin
      min:=1; max:=nmax;
      u:=false;
      while (min<max) and (not(u)) do begin
         mid:=(min+max) div 2;
         val:=fact(mid);
         if val<p then min:=mid+1
           else if val>p then max:=mid-1
             else u:=true;
         end;
      if u then begin
                while mid mod 5<>0 do dec(mid);
                write(g,mid);
                end
           else write(g,-1);
      end;
      close(g);
end.