Cod sursa(job #43808)

Utilizator NebhotepMetes Alexandru Nebhotep Data 30 martie 2007 15:59:51
Problema Factorial Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.47 kb
var f,g:text;
    p,n,pp:1..100000000;
begin
assign(f,'fact.in');reset(f);
assign(g,'fact.out');rewrite(g);
readln(f,p);
{if p=1 then write(g,5)
  else if p=6 then write(g,25)
    else if p=30 then write(g,125)
      else if p=155 then write(g,625)
        else if p=780 then write(g,3125)
          else if p=3905 then write(g,15625)
            else if p=19530 then write(g,78125)
              else if p=97655 then write(g,390625)
                else if p=488280 then write(g,1953125)
                  else if p=2441405 then write(g,9765625)
                    else if p=12207030 then write(g,48828125)
                      else write(g,-1);}



while p-pp>12207020 do begin
        pp:=pp+12207031;
        n:=48828125+n
end;
while p-pp>2441396 do begin
        pp:=pp+2441406;
        n:=9765625+n;
end;
while p-pp>488272 do begin
        pp:=pp+488281;
        n:=1953125+n;
end;
while p-pp>97648 do begin
        pp:=pp+97656;
        n:=390625+n;
end;
while p-pp>19524 do begin
        pp:=pp+19531;
        n:=78125+n;
end;
while p-pp>3900 do begin
        pp:=pp+3906;
        n:=15625+n;
end;

while p-pp>776 do begin
        pp:=pp+781;
        n:=3125+n;
end;
while p-pp>152 do begin
        pp:=pp+156;
        n:=625+n;
end;
while p-pp>28 do begin
        pp:=pp+31;
        n:=125+n;
end;
while p-pp>4 do begin
        pp:=pp+6;
        n:=25+n;
end;
if p=pp then write(g,n)
        else write(g,-1);

close(g);
end.