Esta será uma publicação muito pequena, que me inspirou
neste artigo. Não, eu não vou competir com a solução proposta lá (exceto na brevidade), mas talvez, como demonstração das capacidades de Swift, seja interessante para a habrasociety.
A solução repete absolutamente o algoritmo descrito
na Wikipedia , sem nenhuma modificação.
import Foundation
Os interessados podem brincar com isso
nesta sandbox. O máximo que eu consegui espremer lá - na região de 8.500.000, a pesquisa leva cerca de 6 segundos. Infelizmente, a execução desse código no playground do meu Mac Mini Final de 2014 (Core i5, 8 GB) já com o parâmetro max = 1.000.000 leva a freios bruscos, portanto, tenha cuidado. No link acima, tudo gira muito mais rápido.