Pagini recente » Cod sursa (job #933298) | Cod sursa (job #2522268) | Cod sursa (job #1332223) | Cod sursa (job #845413) | Cod sursa (job #489816)
Cod sursa(job #489816)
program fact;
var f,g:text; p,N:longint; inf:boolean;
function nr_zero(k:longint):longint;
var nr,i:longint;
begin
nr:=0;
i:=5;
While i<=k do
begin
inc(nr,k div i);
i:=i*5;
end;
nr_zero:=nr;
end;
procedure caut_bin(st,dr:longint);
var mijl,nr:longint;
begin
mijl:=(st+dr) div 2;
If inf then
begin
N:=-1;
exit;
end;
If (st=mijl)or(dr=mijl) then inf:=true;
nr:=nr_zero(mijl); {nr de 0 al factorialului valorii medii}
If nr>p then caut_bin(st,mijl-1);
If nr<p then caut_bin(mijl+1,dr);
If nr=p then N:=mijl;
end;
begin
Assign(f,'fact.in'); Reset(f);
Assign(g,'fact.out');Rewrite(g);
Read(f,p); Close(f);
inf:=false;
caut_bin(1,2000000001);
If p=0 then N:=1 else
While N mod 5 > 0 do dec(N);
Writeln(g,N); Close(g);
end.