Cod sursa(job #43785)

Utilizator NebhotepMetes Alexandru Nebhotep Data 30 martie 2007 15:40:10
Problema Factorial Scor 10
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>12207030 do begin
        pp:=pp+12207030;
        n:=48828125+n
end;
while p-pp>2441405 do begin
        pp:=pp+2441405;
        n:=9765625+n;
end;
while p-pp>488280 do begin
        pp:=pp+488280;
        n:=1953125+n;
end;
while p-pp>97655 do begin
        pp:=pp+97655;
        n:=390625+n;
end;
while p-pp>19530 do begin
        pp:=pp+19530;
        n:=78125+n;
end;
while p-pp>3905 do begin
        pp:=pp+3905;
        n:=15625+n;
end;

while p-pp>780 do begin
        pp:=pp+780;
        n:=3125+n;
end;
while p-pp>155 do begin
        pp:=pp+155;
        n:=625+n;
end;
while p-pp>30 do begin
        pp:=pp+30;
        n:=125+n;
end;
while p-pp>6 do begin
        pp:=pp+6;
        n:=25+n;
end;
if p=pp then write(g,n)
        else write(g,-1);

close(g);
end.