maxal писал(а):
Для больших N лучше избрать другую стратегию: сначала находим m такое что
Тут надо осторожнее.
может оказаться
. Поэтому надо проверять еще и
(с соответственно меньшим количеством битов).
Кроме того, перебор можно уменьшить в два раза, если заметить, что первый и последний бит всегда 1. И, я не исключаю, что имеет смысл всегда сперва перебирать меньший диапазон — он задаст нижнюю границу, ниже которой не имеет смысла опускаться в большем диапазоне.
Кстати, мне неочевидно, достаточно ли опустить
на
. Может статься, что
простое число, а вот среди
нет ни одного простого с
битом. Поэтому, получив некоторый результат, надо двигаться по
вниз, до тех пор, пока мы заведомо не попадем в меньшее количество бит…