Pagini recente » Cod sursa (job #1818216) | Cod sursa (job #114931) | Cod sursa (job #873372) | Cod sursa (job #405513) | Cod sursa (job #554351)
Cod sursa(job #554351)
program factorial;
const put5:array[1..12] of longint = (5,25,125,625,3125,15625,78125,390625,1953125,9765625,48828125,244140625);
var p,n:longint;
f:text;
i:byte;
function nr_zerouri(n:longint):longint;
var i:byte;
nr:longint;
begin
nr:=0;
for i:=1 to 12 do
nr := nr + n div put5[i];
nr_zerouri:=nr;
end;
function cauta(li,ls:longint):longint;
var m,nrz:longint;
begin
if li>ls then
cauta := -1
else
begin
m:=(li+ls) div 2;
nrz:=nr_zerouri(m);
if p = nrz then
cauta := m
else
if p < nrz then
cauta := cauta(li,m-1)
else
cauta := cauta(m+1,ls);
end;
end;
begin
assign(f,'factorial.in');
reset(f);
readln(f,p);
close(f);
if p = 0 then
n :=1
else
begin
n := cauta(1,500000000);
while nr_zerouri(n-1) = p do
n:=n-1;
end;
assign(f,'factorial.out');
rewrite(f);
writeln(f,n);
close(f);
end.