Обычно я пользуюсь следующим алгоритмом, до которого, кстати, сама докопалась.
Число n двоек в разложении числа

на простые множители равно
![$[\frac{m}{2}]+[\frac{m}{4}]+[\frac{m}{8}]+\dots +[\frac{m}{2^k}]+\dots$ $[\frac{m}{2}]+[\frac{m}{4}]+[\frac{m}{8}]+\dots +[\frac{m}{2^k}]+\dots$](https://dxdy-03.korotkov.co.uk/f/2/6/5/265bd6c6c358102be938ed9d3f5cfe7582.png)
Например, в числе

будет
![$[\frac{2011}{2}]+[\frac{2011}{4}]+[\frac{2011}{8}]+\dots +[\frac{2011}{2^k}]+\dots=2002$ $[\frac{2011}{2}]+[\frac{2011}{4}]+[\frac{2011}{8}]+\dots +[\frac{2011}{2^k}]+\dots=2002$](https://dxdy-02.korotkov.co.uk/f/d/2/9/d29c618448646a55ed688d2d45a4ee3982.png)
двойки.
При этом n, как правило, не намного отличается от m.
А как сосчитать быстрее? Для

данный алгоритм ещё более-менее приемлем, а как, скажем, быть с

? Есть какая-то формула?