Сито Эратосфена с Факторизацией Колеса
Я реализую довольно быстрый генератор простых чисел, и я получил несколько хороших результатов с несколькими оптимизациями на основе эратосфена. В частности, во время предварительной части алгоритма я пропускаю все кратные 2 и 3 следующим образом:
template<class Sieve, class SizeT>
void PrimeGenerator<Sieve, SizeT>::factorize()
{
SizeT c = 2;
m_sieve[2] = 1;
m_sieve[3] = 1;
for (SizeT i=5; i<m_size; i += c, c = 6 - c)
m_sieve[i] = 1;
}
Здесь m_sieve - логический массив в соответствии с ситом эратосфена. Я думаю, что это разновидность факторизации Колеса только с учетом простых чисел 2 и 3, с приращением по схеме 2, 4, 2, 4, ... Что я хотел бы сделать, так это реализовать колесо большего размера, возможно, с учетом простых чисел 2,3 и 5. Я уже прочитал много документации об этом, но я не видел никакой реализации с решеткой эратосфена ... пример кода мог бы сильно помочь, но некоторые советы были бы хороши :) Спасибо.