Cod sursa(job #121500)

Utilizator claudiu_syclaudiu claudiu_sy Data 8 ianuarie 2008 21:45:23
Problema Pascal Scor 10
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.87 kb
var j,r,d,p:longint;
    a,b,c,n:longint;
    f,g:text;
    ok,oki:boolean;
function ka_la(o,l:longint):longint;
begin
if o=1 then ka_la:=l
   else ka_la:=l*ka_la(o-1,l);
end;

function exp(e,k:longint):longint;
var s,i,q:longint;
begin
q:=0;
i:=1;
repeat
s:=ka_la(i,k);
q:=trunc(e div s)+q;
i:=i+1;
until s>e;
end;


begin
assign(f,'pascal.in');
assign(g,'pascal.out');
reset(f);
rewrite(g);
readln(f,r,d);
c:=exp(r,d);
ok:=true;
if r mod 2=0 then ok:=false;
for j:=0 to ((r-1) div 2) do
    begin
    b:=exp(r-j,d);
    if (j=0) or (j=1) then
       a:=0;
    n:=c-(a+b);
    if n>0 then
       p:=p+1;
    end;


if ok then
   p:=p*2
   else begin
        p:=p*2;
        a:=exp(j+1,d);
        b:=exp(r-j-1,d);
        n:=c - (a*b);
        if n >0 then
           p:=p+1;
        end;

writeln(g,p);
close(f);
close(g);
end.