maxal писал(а):
Для больших N лучше избрать другую стратегию: сначала находим m такое что

Тут надо осторожнее.

может оказаться

. Поэтому надо проверять еще и

(с соответственно меньшим количеством битов).
Кроме того, перебор можно уменьшить в два раза, если заметить, что первый и последний бит всегда 1. И, я не исключаю, что имеет смысл всегда сперва перебирать меньший диапазон — он задаст нижнюю границу, ниже которой не имеет смысла опускаться в большем диапазоне.
Кстати, мне неочевидно, достаточно ли опустить

на

. Может статься, что

простое число, а вот среди

нет ни одного простого с

битом. Поэтому, получив некоторый результат, надо двигаться по

вниз, до тех пор, пока мы заведомо не попадем в меньшее количество бит…