Pagini recente » Cod sursa (job #1545690) | Cod sursa (job #3298418) | Cod sursa (job #3292583) | Cod sursa (job #1813095) | Cod sursa (job #1197531)
var n,k: longint;
a,b: longint;
i,j: longint;
x,y,z: int64;
t: text;
function corespunde(x,y,z:longint):boolean;
begin
if (x-(z+y))>0 then corespunde:=true else
corespunde:=false;
end;
begin
assign(t,'pascal.in');
reset(t);
readln(t,n,k);
x:=0;y:=0;
for i:=2 to n do begin
a:=i;
while (a mod k=0) do begin
inc(x);a:=a div k;
end;
end;
close(t);
a:=0;
y:=x;z:=0;
for i:=1 to (n div 2) do begin
b:=n-i+1;
while (b mod k=0)and(b>0) do begin
dec(y);b:=b div k;
end;
b:=i;
while (b mod k=0)and(b>0) do begin
inc(z);b:=b div k;
end;
if corespunde(x,y,z) then inc(a);
end;
a:=a*2;
if (n+1) mod 2=1 then begin
b:=n-(n div 2);
while (b mod k=0) do begin
dec(y);b:=b div k;
end;
b:=(n div 2)-1;
while (b mod k=0) do begin
inc(z);b:=b div k;
end;
if corespunde(x,y,z) then inc(a);
end;
assign(t,'pascal.out');
rewrite(t);
writeln(t,a);
close(t);
end.