Пусть $B_k$ — множество всех чисел от 1 до $2k$, в двоичной записи которых ровно 3 единицы, $g(k)$ — число элементов в $B_k$. Ясно, что $g(k)$ — неубывающая функция и $f(k)=g(2k)-g(k)$.
Поэтому
$$
\begin{gather*}
f(k+1)-f(k)=g(2k+2)-g(k+1)-(g(2k)-g(k))=\\
=g(2k+2)-g(2k)-(g(k+1)-g(k)).
\end{gather*}
$$
а) Ясно, что $(2k+2)\in B_{2k+2}$ в том и только в том случае, когда $(k+1)\in B_{k+1}$. Поэтому $f(k+1)-f(k)$ не может вырасти сразу на 2, точнее,
$$
f(k+1)-f(k)=\begin{cases}
1,&\text{если}~(2k+1)\in B_{2k+2},\\
0&\text{в противном случае.}
\end{cases}
$$
Но поскольку, очевидно, $f(k)$ растёт неограниченно, эта функция принимает все натуральные значения.
$$
\def\a#1{\enspace\mathclap{#1}\enspace}
\begin{array}{|c|c|c|c|c|c|c|c|c|c|c|c|c|}\hline
\vphantom{\dfrac00}k&\a2&\a3&\a4&\a5&\a6&\a7&\a8&\a9&\a{10}&\a{11}&\a{12}&\a{\ldots}\\\hline
\vphantom{\dfrac00}g(k)&\a0&\a0&\a1&\a1&\a2&\a4&\a4&\a4&\a5&\a7&\a7&\a{\ldots}\\\hline
\vphantom{\dfrac00}f(k)&\a1&\a2&\a3&\a4&\a5&\a5&\a5&\a6&\a7&\a7&\a{\ldots}\\\hline
\end{array}
$$
б) Уравнение $f(k)=m$ имеет для некоторого $m$ единственное решение в том и только в том случае, если $f(k+1)-f(k)=1=f(k)-f(k-1)$, т. е. $(2k+1)\in B_{2k+2}$ и оба числа $k$ и $k-1$ имеют по две единицы в двоичной записи; другими словами, $k=2^n+2$, $n\ge2$. При этом
$$
m=f(2^n+2)=1+\dfrac{n(n-1)}{2} \quad (\text{где}~n=2{,}~3{,}~{\ldots}),
$$
это и есть все нужные значения $m$.