Para un intervalo de $1..b$, todos los números congruentes 2, 4, 5 o 8 módulo 9 puede ser ignorado porque de estas producciones mirando con un número menor:
$$6z + 1 \rightarrow 18z + 4 \rightarrow 9z + 2$$
$$6z + 3 \rightarrow 18z + 10 \rightarrow 9z + 5$$
$$6z + 5 \rightarrow 18z + 16 \rightarrow 9z + 8$$
$$8z + 3 \rightarrow 24z + 10 \rightarrow 12z + 5 \rightarrow 36z + 16 \rightarrow 18z + 8 \rightarrow 9z + 4$$
Del mismo modo, todos los números congruentes modulo 5 8 puede ser ignorado , ya que estos dos caminos se unen después de tres pasos:
$$8z + 5 \rightarrow 24z + 16 \rightarrow 12z + 8 \rightarrow 6z + 4$$
$$8z + 4 \rightarrow 4z + 2 \rightarrow 2z + 1 \rightarrow 6z + 4$$
De esta manera podemos reducir el conjunto de los números para ser revisado por un factor de $\frac59\cdot\frac78 = \frac{35}{72}$.
También la mitad inferior del intervalo puede ser omitido (como incluso los números de "caer" en ellos), vuelve a guardar el factor 2. Por lo que una reducción de alrededor de un cuarto puede ser adquirida(*).
Pero la más importante speedup puede ser obtenido haciendo varios pasos a la vez, como se describe en la Wikipedia. Con una pequeña tabla de $2^{17}$ elementos, de 17 pasos a la vez que se puede hacer, que conduce a una velocidad de seguridad tal vez 10 (los pasos son un poco más complicados que los directos de computación). AFAIK este es el más grande de tabla de ajuste en la memoria caché.
Cuando la búsqueda de la maximizer, sin embargo, el número de pasos necesarios para exceder la corriente máxima que puede ser utilizado para una búsqueda en una tabla derivada de este para determinar si el valor actual necesita ser ampliado aún más. Esto le da un factor adicional de 2 para el intervalo de $1..10^{10}$.
Este fantástico enlace da mucho más complicado consejos de optimización que permite omitir la comprobación de la mayoría de los números restantes.
(*) Por un intervalo de $a..b$, esto sólo se aplica parcialmente.