Cod sursa(job #5414)
Utilizator | Data | 12 ianuarie 2007 12:58:25 | |
---|---|---|---|
Problema | Factorial | Scor | 100 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 1.39 kb |
program fact;
var f,g:text;
p:longint;
procedure iofile;
begin
assign(f,'fact.in');
reset(f);
assign(g,'fact.out');
rewrite(g);
readln(f,p);
if p=0 then
begin
writeln(g,'1');
close(g);
halt;
end;
close(f);
end;
procedure prel;
var x,diviz,i,nr:longint;
begin
x:=1;
diviz:=1;
nr:=0;
while x<p do
begin
diviz:=diviz*5;
x:=x*5+1;
inc(nr);
end;
{x:=(x-1)div 5;
dec(nr);
diviz:=diviz div 5;}
i:=0;
while p>0 do
begin
i:=i+(p div x)*diviz;
p:=p mod x;
if p>=x-nr then
begin
writeln(g,'-1');
close(g);
halt;
end;
x:=(x-1)div 5;
dec(nr);
diviz:=diviz div 5;
end;
writeln(g,i*5);
close(g);
end;
begin
iofile;
prel;
end.