Cod sursa(job #305630)

Utilizator danalex97Dan H Alexandru danalex97 Data 17 aprilie 2009 22:47:30
Problema Factorial Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.36 kb
procedure lucru(var c:longint;n:longint);
begin
while n mod 5=0 do
  begin
    n:=n div 5;
    inc(c);
  end;
end;

var p,n,c,k:longint;
    f,g:text;

begin
assign(f,'fact.in');
reset(f);
assign(g,'fact.out');
rewrite(g);
read(f,p);
if (p>0) then
begin
{}
if p<10000 then
begin
c:=0;
while c<p do
  begin
    inc(n,5);
    lucru(c,n);
  end;
if c=p then write(g,n)
       else write(g,'-1');
end;
{}
if (p<100000)and(p>=10000) then
begin
c:=40010;
while c<p do
  begin
    inc(n,5);
    lucru(c,n);
  end;
if c=p then write(g,n)
       else write(g,'-1');
end;
{}
if (p<1000000)and(p>=100000) then
begin
c:=400005;
while c<p do
  begin
    inc(n,5);
    lucru(c,n);
  end;
if c=p then write(g,n)
       else write(g,'-1');
end;
{}
if (p<10000000)and(p>=1000000) then
begin
c:=4000005;
while c<p do
  begin
    inc(n,5);
    lucru(c,n);
  end;
if c=p then write(g,n)
       else write(g,'-1');
end;
{}
if (p<50000000)and(p>=10000000) then
begin
c:=40000010;
while c<p do
  begin
    inc(n,5);
    lucru(c,n);
  end;
if c=p then write(g,n)
       else write(g,'-1');
end;
{}
if (p>=50000000) then
begin
c:=200000010;
while c<p do
  begin
    inc(n,5);
    lucru(c,n);
  end;
if c=p then write(g,n)
       else write(g,'-1');
end;
{}
end
else
if p=0 then write(g,'1');
close(f);
close(g);
end.