Pagini recente » Cod sursa (job #3131688) | Cod sursa (job #1868512) | Cod sursa (job #2951422) | Cod sursa (job #561711) | Cod sursa (job #140020)
Cod sursa(job #140020)
var f,g:text;
y1,y2,y3,x1,x2,x3,z,r,d,j,nr,t:longint;
ok:boolean;
function putere(x,n:longint):longint;
var z,s:longint;
begin
s:=0;
z:=n;
while x div z<>0 do
begin
s:=s+trunc(x div z);
z:=z*n;
end;
putere:=s;
end;
begin
assign(f,'pascal.in'); reset(f);
assign(g,'pascal.out'); rewrite(g);
readln(f,r,d);
if r<2 then
begin
writeln(g,'0');
close(g);
halt;
end;
if d=6 then ok:=true;
x1:=putere(r,2); nr:=0;
y1:=putere(r,3);
z:=putere(r,5);
for j:=1 to (r-1) div 2+(r-1) mod 2 do
begin
t:=nr;
if ok then
begin
x2:=putere(r-j,2);
x3:=putere(j,2);
y2:=putere(r-j,3);
y3:=putere(j,3);
if (x1-x2-x3>0)and(y1-y2-y3>0) then inc(nr);
end
else
begin
if d=4 then
begin
x2:=putere(r-j,2);
x3:=putere(j,2);
if (x1-x2-x3>0)and((x1-x2-x3)mod 2=0) then inc(nr);
end
else
begin
case d of 2:y3:=x1;
3:y3:=y1;
5:y3:=z;
end;
x2:=putere(r-j,d);
x3:=putere(j,d);
if y3-x2-x3>0 then inc(nr);
end;
end;
if (j=(r-1) div 2+(r-1) mod 2)then
begin
if(r mod 2=0)and(t<>nr)then nr:=(nr-1)*2+1;
if (t=nr)or(r mod 2<>0) then nr:=nr*2;
end;
end;
writeln(g,nr);
close(g);
end.