Я сомневаюсь, что вы найдете побитовый алгоритм для определения того, что число является степенью 5.
В общем случае, если y = n^x
, чтобы найти x
, вам нужно использовать логарифмы, т.е. x = log_n(y)
. Большинство языков не предлагают функцию log_n
, но вы можете достичь ее с помощью следующего идентификатора:
log_n(y) = log(y) / log(n)
Если y
представляет собой целую степень n
, тогда x
будет целым числом. Конечно, из-за ограничений компьютерной арифметики конечной точности вы не обязательно получите точный ответ описанным выше методом.