Cod sursa(job #131868)

Utilizator andreivFMI - vacaroiu andrei andreiv Data 4 februarie 2008 16:45:58
Problema Factorial Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.12 kb
program factorial;
var x,k,p,n,nr2,nr5:longint;
    f,g:text;
begin
assign(f,'fact.in');
assign(g,'fact.out');
reset(f);
rewrite(g);
read(f,k);nr2:=0;nr5:=0;k:=100000;
if k=0 then
write(g,1) else
if k<=1000   then

 begin
n:=1;
while (nr2<k) or (nr5<k) do
begin
n:=n+1;
x:=n;
while x mod 2=0 do
begin
x:=x div 2;
nr2:=nr2+1;
end;
while x mod 5=0 do
begin
x:=x div 5;
nr5:=nr5+1;
end;
end;
if (nr2=k) and (nr5>=nr2) then
begin
write(g,n);
close(g);
exit
end
  else
if (nr5=k) and (nr2>=nr5) then
begin
write(g,n);
close(g);
exit
end  else
if (nr5>k) and (nr2>k) then
begin
write(g,-1);
close(g);
exit
end;

end else
begin
n:=4005;nr2:=3997;nr5:=1000;
while (nr2<k) or (nr5<k) do
begin
n:=n+1;
x:=n;
while x mod 2=0 do
begin
x:=x div 2;
nr2:=nr2+1;
end;
while x mod 5=0 do
begin
x:=x div 5;
nr5:=nr5+1;
end;
end;
if (nr2=k) and (nr5>=nr2) then
begin
write(g,n);
close(g);
exit
end
  else
if (nr5=k) and (nr2>=nr5) then
begin
write(g,n);
close(g);
exit
end  else
if (nr5>k) and (nr2>k) then
begin
write(g,-1);
close(g);
exit
end;

end;

close(f);
closE(G);
end.