Cod sursa(job #305631)

Utilizator danalex97Dan H Alexandru danalex97 Data 17 aprilie 2009 22:51:37
Problema Factorial Scor 60
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.43 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
n:=0;
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
n:=40010;
c:=10000;
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
n:=400005;
c:=100000;
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
n:=4000005;
c:=1000000;
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
n:=40000010;
c:=10000000;
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
n:=200000010;
c:=50000000;
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.