Cod sursa(job #13381)

Utilizator runnaway90Oprescu Radu Constantin runnaway90 Data 6 februarie 2007 14:26:53
Problema Factorial Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.34 kb
var f,g:text;
        a,b,x,m,fact,suma,p,r:longint;
        ok:boolean;
begin
        assign(f,'fact.in');
        reset(f);
                read(f,p);
        close(f);
        b:=2000000000;
        a:=0;
        ok:=true;
        suma:=0;
        assign(g,'fact.out');
        rewrite(g);
        while (a<>b)and(ok) do
        begin
             x:=(a+b) div 2;
             fact:=5;
             m:=x;
             suma:=0;

             while x div fact<>0 do
             begin
                suma:=suma+x div fact;
                fact:=fact*5;
             end;


             if suma=p then
             begin

             while (suma=p)and(m>0) do
             begin
                m:=m-1;
                r:=m;
                fact:=5;
                suma:=0;
                ok:=false;
                while r div fact<>0 do
                begin
                     suma:=suma+r div fact;
                     fact:=fact*5;
                end;
             end;
             write(g,m+1);
             end
             else
             if suma<p then
             begin
                a:=(a+b) div 2;
             end
             else
             if suma >p then
                b:=(a+b) div 2;
        end;
        if a=b then
                write(g,-1);
        close(g);
end.