Cod sursa(job #60238)

Utilizator recviemAlexandru Pana recviem Data 13 mai 2007 11:47:51
Problema Factorial Scor 60
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.9 kb
program fact;

{$mode objfpc}{$H+}

uses
  Classes, SysUtils
  { add your units here };

var
   p:int64;
   
function zero(x:int64):int64;
var
   c:int64;
begin
     c:=0;
     while x div 5 > 0 do
     begin
          c:=c+ x div 5;
          x:= x div 5;
     end;
     zero:=c;
end;

procedure calc(x,y:int64);
var
   d:int64;
   z:int64;
begin
     if (x<>y) or (abs(x-y)>2) then
     begin
          d:=(x+y) div 2;
          z:=zero(d);
          if (d mod 5 = 0) and (z = p) then
          case d of
               0: writeln('-1')
               else writeln(d);
          end else
          if z<p
             then calc(d+1,y)
             else calc(x,d-1)
     end     else writeln('-1');
end;

begin
     assign(input,'fact.in');reset(input);
     assign(output,'fact.out');rewrite(output);
     while not eof do
     begin
          readln(p);
          calc(0,10000000000);
     end;
     close(output);
end.