Cod sursa(job #907789)

Utilizator wollyFusy Wool wolly Data 8 martie 2013 12:31:31
Problema Factorial Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.89 kb
Var
	n,mijPrec,nZero,numFact,zerouri:int64;

Procedure scrie(numar:int64);
begin
while (numar mod 5<>0) do 
numar:=numar-1;
writeln(output,numar);
end;

Procedure zero(num,p:int64);
begin
nZero:=num div p;
if nZero>0 then
	begin
	zerouri:=zerouri+nZero;
	zero(num,p*5);
	end;
end;

Procedure bin(min,max:int64);
Var 
	mij:int64;
Begin
	mij := (min+max) Div 2;
	zerouri:=0;
	
	zero(mij,5);
	
	
  if mij=mijPrec then
	writeln(output,'-1') else
	begin
	
	If mij>0 Then
		Begin

		If zerouri>n Then
			begin
			mijPrec:=mij;
			bin(min,mij-1);
			end;
		
		If zerouri<n Then
			begin
			mijPrec:=mij;
			bin(mij+1,max);
			end;
		
		If zerouri=n Then
			begin
			scrie(mij);
			halt();
			end;

    End
  Else
    writeln(output,'-1');
  End;
End;



Begin
assign(input,'fact.in'); reset(input);
assign(output,'fact.out'); rewrite(output);
read(input,n);
if n=0 then
writeln(output,1) else
bin(1,400000015);
End.