Cod sursa(job #1213281)

Utilizator valen.valentinValentin Valeanu valen.valentin Data 27 iulie 2014 18:52:49
Problema Factorial Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.54 kb
program factorial;
var
n,i,j,k,l,b,m:longint;
f1,f2:text;
function fact(m:longint):longint;
var
nr,t:longint;
begin
nr:=5; t:=0;
while nr<=m do
begin
t:=t+m div nr;
nr:=nr*5;
end;
fact:=t;
end;
begin
assign (f1,'fact.in');
assign (f2,'fact.out');
reset (f1);
rewrite (f2);
readln (f1,n);
k:=n*5; l:=1;
if (n=0) then writeln (f2,1) else
begin
while l<=k do
begin
m:=(k+l) div 2;
b:=fact(m);
if (b>=n) then k:=m-1 else l:=m+1;
end;
if fact(l)=n then writeln (f2,l) else
writeln (f2,-1);
end;
close (f1);
close (f2);
end.