Cod sursa(job #489797)

Utilizator PlayLikeNeverB4George Marcus PlayLikeNeverB4 Data 3 octombrie 2010 16:48:30
Problema Factorial Scor 45
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.78 kb
program fact;
var f,g:text; p,N:longint;
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;
nr:=nr_zero(mijl); {nr de 0 al factorialului valorii medii}
If nr>p then caut_bin(st,mijl);
If nr<p then caut_bin(mijl,dr);
If nr=p then
 begin
 N:=mijl;
 exit;
 end;
If st=dr then
 begin
 N:=-1;
 exit;
 end;
end;
function val_min(k:longint):longint;
begin
While k mod 5 > 0 do dec(k);
val_min:=k;
end;
begin
Assign(f,'fact.in'); Reset(f);
Assign(g,'fact.out');Rewrite(g);
Read(f,p); Close(f);
caut_bin(1,100000001);
If N mod 5 > 0 then N:=val_min(N);
Writeln(g,N); Close(g);
end.