Cod sursa(job #601492)

Utilizator DarkWishMasterCebotari Vlad DarkWishMaster Data 6 iulie 2011 20:10:36
Problema Factorial Scor 90
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.78 kb
var a:array[1..20] of int64;
    P:int64; N,K,r:longint; i:byte; F:text;
 function CheckZero(N:longint):longint;
  var r:int64;
   begin
    i:=1;
     r:=0;
     while a[i]<=N do
      begin
      r:=r+N div a[i];
      inc(i);
     end;
    CheckZero:=r;
  end;
Begin
a[1]:=5;
N:=0;
assign(F, 'fact.in');
reset(F);
readln(F, P);
close(F);
for i:=2 to 20 do
  a[i]:=a[i-1]*5;
K:=1;
r:=0;
if P>10 then
 while K<P do begin
  N:=N+5*((P-K) div 5);
  if N=r then N:=n+5
   else r:=N;
 K:=CheckZero(N);
end
 else
  while K<P do begin
   N:=N+5;
   K:=CheckZero(N);
  end;
k:=CheckZero(N);
if CheckZero(N-2)=P then N:=N-2
 else if CheckZero(n-1)=P then N:=N-1
   else if K<>P then N:=-1;
 assign(F, 'fact.out');
 rewrite(F);
write(F, N);
close(F);
end.