То же самое время. Console.WriteLine вызывается, только если новое расстояние больше уже найденного, и так как максимальное расстояние равно 540, будет вызываться очень редко (около 50 раз)
При этом решето Сундарама вычеркивает числа вида n = i +J +2ij.
разве для i=1 и j=2 мы не вычеркнем число 7.
требование для 2i+1 — простое число также выполняется.
может есть еще какие-то неозвученные границы применимости?
В решете Сундарама мы вычеркиваем числа i + j + 2ij для любых i, j (не только простых), для оставшихся чисел 2n+1 — будет простое число, не 2i+1. То есть, число 7 мы вычеркнем правильно, потому что 2*7+1=15 не является простым числом. У меня было написано ni, я исправил на n, надеюсь, так понятней будет
Здесь приведена недостоверная информация по решету Аткина. Оно обладает значительно лучшей оценкой. А основан алгоритм Аткина на том, что существует возможность перебора нужных значений квадратичных форм с использованием подходящих шагов по x и y, и полный перебор их значений не требуется.
А, теперь понял суть ваших претензий. Мне кажется, это вопрос терминологии, какой именно алгоритм является «классическим» решетом Аткина, а какой — его оптимизированной версией. Мой вариант — такой же, как и в статье в Википедии, хотя в дискуссии к ней он тоже критикуется.
Алгоритм Аткина приведен в его статье, поэтому это не вопрос терминологии. При фаторизации (2,3,5) будет справедливо следующее. Если (x0,y0) являются «подходящими» значениями для первой квадратичной формы, то значения (x0+15, y0) и (х0, y0+30) тоже будут для нее «подходящими». И такой шаг является минимальным. Это позволит вам представить разницу в быстродействии решета Аткина и реализации, приведенной в публикации.
В его статье приведены оба варианта: в главе 3 «Prime sieves using irreducible binary quadratic forms» — аналогичный приведенному здесь и в википедии, и в главе 4 «Enumerating lattice points» — его оптимизация до O(n / log log n).
В любом случае, именно алгоритм, приведенный в публикации, в Википедии называется решетом Аткина, хотя многие, действительно, с этим не согласны.
К тому же, я в публикации упоминаю утилиту primegen, основанную на оптимизированном решете Аткина, которая в 30 раз быстрее моей реализации.
Ищем простые числа до триллиона за тридцать минут