Cod sursa(job #9162)

Utilizator gozmanGrosu Andrei Nicolae gozman Data 26 ianuarie 2007 21:41:29
Problema Factorial Scor 80
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.79 kb
program factorial;
var f:text;
   v:array[1..100] of longint;
   n,nr,p,pt,d:longint;
   ok:boolean;
begin
assign(f,'fact.in'); reset(f);
readln(f,p);
close(f);
nr:=0;
ok:=true;
n:=p;
assign(f,'fact.out'); rewrite(f);
while (ok) and (n<>0) do
begin
     d:=1;
     pt:=0;
     while pt <n do
        begin
              pt:=pt*5+1;
              d:=d*5;
       end;
       pt:=(pt-1) div 5;
       nr:=nr+d div 5;
       n:=n-pt;
       if n<=6 then if n=5 then ok:=false
                           else begin
                                     nr:=nr+n*5;
                                     n:=0;
                                 end;
   end;
   if p=0 then writeln(f,'1')
          else
if  not ok then writeln(f,'-1')
           else writeln(f,nr);
close(f);
end.