Cod sursa(job #164877)

Utilizator kolapsysPostelnicu Dan Marian kolapsys Data 24 martie 2008 21:51:18
Problema Factorial Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.32 kb
var p,a,b,m:longint;
        q:boolean;
        g:text;
function f(n:longint):longint;
var p:longint;
begin
        p:=0;
        while n>0 do
                begin
                p:=p+(n div 5);
                n:=n div 5;
                end;
        f:=p;
end;
begin
        assign(g,'fact.in'); reset(g);
        readln(g,p);
        close(g);
        assign(g,'fact.out'); rewrite(g);
        if p=0 then writeln(g,1)
               else begin
                        a:=1;
                        b:=500000000;
                        q:=false;
                        while (a<=b) and (not(q)) do
                                begin
                                m:=(a+b) div 2;
                                if f(m)=p then begin
                                                 while f(m)=p do m:=m-1;
                                                 writeln(g,m+1);
                                                 q:=true;
                                                 end
                                            else
                                            if f(m)<p then a:=m+1
                                                      else b:=m-1;
                                end;
                        if not(q) then writeln(g,-1);
                    end;
        close(g);
end.