Pagini recente » Cod sursa (job #1382853) | Cod sursa (job #490569) | Cod sursa (job #1930973) | Cod sursa (job #1385392) | Cod sursa (job #21725)
Cod sursa(job #21725)
{$IFDEF NORMAL}
{$I-,Q-,R-,S-}
{$ENDIF NORMAL}
{$IFDEF DEBUG}
{$I+,Q+,R+,S-}
{$ENDIF DEBUG}
{$IFDEF RELEASE}
{$I-,Q-,R-,S-}
{$ENDIF RELEASE}
var fi,fo :text;
i,j,p,n,st,dr,vl,mj :longword;
ok :boolean;
function power(x:integer):longword;
var i,ct:longword;
begin
ct:=1;
for i:=1 to x do
ct:=ct*5;
power:=ct;
end;
function Z(n:longword):longword;
var i,j,kmax,sum:longword;
ct:integer;
int:longword;
begin
int:=5;
ct:=1;
while int<n do
begin
int:=int*5;
inc(ct);
end;
kmax:=ct-1;
sum:=0;
for i:=1 to kmax do
sum:=sum+trunc(n/power(i));
Z:=sum;
end;
begin
assign(fi,'fact.in'); reset(fi);
assign(fo,'fact.out'); rewrite(fo);
read(fi,p);
close(fi);
st:=1; dr:=500000000;
ok:=false;
if p=0 then
begin
write(fo,'1');
close(fo);
halt
end;
while st<dr do
begin
mj:=(st+dr) div 2;
vl:=Z(mj);
if p=vl then
begin
ok:=true;
write(fo,mj-mj mod 5);
break;
end;
if p<vl then dr:=mj-1;
if p>vl then st:=mj+1;
end;
if ok=false then write(fo,'-1');
close(fo);
end.