Pagini recente » Arhiva de probleme | Cod sursa (job #1884731) | Cod sursa (job #1570487) | Cod sursa (job #688738) | Cod sursa (job #139066)
Cod sursa(job #139066)
var sol:int64;
s,ct,rez,val,st,dr,mijloc:int64;
fi,fo:text;
uc:byte;
begin
assign(fi,'fact.in'); reset(fi);
assign(fo,'fact.out'); rewrite(fo);
read(fi,val);
st:=1; dr:=3000000000;
while st<=dr do
begin
sol:=0; ct:=5; mijloc:=(st+dr) div 2;
while ct<=mijloc do
begin sol:=sol+trunc(mijloc/ct); ct:=ct*5; end;
if sol=val then begin rez:=mijloc; break; end
else
if sol>val then dr:=mijloc-1
else st:=mijloc+1;
end;
if rez=0 then writeln(fo,'-1')
else
begin uc:=rez mod 10;
if uc<5 then rez:=(rez div 10)*10
else rez:=(rez div 10)*10+5;
if rez=0 then rez:=1; end;
writeln(fo,rez);
close(fi); close(fo);
end.