Посмотрев на ситовый код с простыми числами и посмотрев, как Совместная структура работает, я нашел ее чрезвычайно элегантной. Однако он также крайне неэффективен, и IIRC, что эквивалентно O (n ^ 2), проверяющая делимость числа m на деля его на каждое число меньше, чем m. Я полагаю, что я мог бы вместо этого измените его, чтобы использовать операцию O (n ^ 1.5) проверки делимости of m, разделив его на каждое число, меньшее или равное sqrt (m). Однако это оказалось намного сложнее, чем я ожидал.
Я знаю, что это скорее вопрос алгоритмики, но он также один чрезвычайно важна для concurrency. Как реализовать O (n ^ 1.5) версия алгоритма?