Nu aveti permisiuni pentru a descarca fisierul grader_test13.in

Cod sursa(job #363072)

Utilizator arnold23Arnold Tempfli arnold23 Data 11 noiembrie 2009 19:00:54
Problema Factorial Scor 35
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.04 kb
var f:text;
    p,n,b,e,m,k:longint;
    ok:boolean;

function nrz(n:longint):longint;
var q:longint;
begin
   q:=0;
   while n>0 do begin
      q:=q+n div 5;
      n:=n div 5;
   end;
   nrz:=q;
end;

begin
 assign(f,'fact.in');
 reset(f);
 readln(f,p);
 close(f);

 if p=0 then begin
   assign(f,'fact.out');
   rewrite(f);
   writeln(f,'1');
   close(f);
 end else
 if p<5 then begin
   assign(f,'fact.out');
   rewrite(f);
   writeln(f,p*5);
   close(f);
 end else begin
   b:=1;
   e:=maxlongint-1;
   ok:=true;
   while ok do begin
      m:=(b div 2)+(e div 2);
      k:=nrz(m);
      if (k=p) or (b=e) then ok:=false
      else if k>p then e:=m-1
      else b:=m+1;
   end;
   if k<>p then m:=-1;
   if m mod 5 <> 0 then begin
   ok:=true;
   b:=1;
   while ok do begin
     if (m+b) mod 5 = 0 then begin m:=m+b; ok:=false; end else
     if (m-b) mod 5 = 0 then begin m:=m-b; ok:=false; end else inc(b);
   end;
   end;
   assign(f,'fact.out');
   rewrite(f);
   writeln(f,m);
   close(f);
 end;
end.