Pagini recente » Cod sursa (job #95432) | Cod sursa (job #361013) | Cod sursa (job #345527) | Cod sursa (job #147210) | Cod sursa (job #601510)
Cod sursa(job #601510)
var a:array[1..20] of int64;
P:int64; N,K,r:longint; i:byte; F:text;
function CheckZero(N:longint):longint;
var r:int64; i:byte;
begin
i:=1;
r:=0;
while a[i]<=N do
begin
r:=r+N div a[i];
inc(i);
end;
CheckZero:=r;
end;
Begin
a[1]:=5;
N:=0;
assign(F, 'fact.in');
reset(F);
read(F, P);
close(F);
for i:=2 to 20 do
a[i]:=a[i-1]*5;
K:=0;
r:=0;
if P>10 then
while K<P do begin
N:=N+5*((P-K) div 10);
if N=r then N:=n+5
else r:=N;
K:=CheckZero(N);
end
else
while K<P do begin
N:=N+5;
K:=CheckZero(N);
end;
k:=0;
if n>5 then
for i:=1 to 5 do
if CheckZero(N-i)=P then k:=i;
n:=n-k;
if CheckZero(N)<>P then N:=-1;
if P=0 then N:=1;
assign(F, 'fact.out');
rewrite(F);
writeln(N);
write(F, N);
close(F);
end.