Cod sursa(job #1571281)

Utilizator ili226Vlad Ilie ili226 Data 17 ianuarie 2016 19:16:30
Problema Factorial Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.71 kb
var f:text;
    n,p,zero,ramase,pow,max:longint;
    i:byte;
function nrzero(x:longint):longint;{returneaza numarul de zerouri codale a lui x factorial}
var k,ptr:longint;
begin
ptr:=1;
k:=0;
repeat
 ptr:=ptr*5;
 inc(k,x div ptr);
until ptr>=x;
nrzero:=k;
end;

begin
 assign(f,'fact.in');
 reset(f);
 readln(f,p);
 close(f);
 n:=5*p;
 zero:=nrzero(n);
 max:=1;
 for i:=1 to 12 do max:=max*5;
 repeat
 pow:=max;ramase:=-1;
 repeat
  pow:=pow div 5;
  if n-pow>0 then
   ramase:=nrzero(n-pow);
 until (ramase>=p)or(pow=5);
 n:=n-pow;
 zero:=nrzero(n);
 until zero<=p;
 assign(f,'fact.out');
 rewrite(f);
 if zero=p then
  writeln(f,n)
           else
  writeln(f,-1);
 close(f)
end.