Supposons que nous commençons par la liste infinie de nombres premiers:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, ...
Ensuite, nous prenons les différences absolues entre chaque paire de nombres, à plusieurs reprises:
[1, 2, 2, 4, 2, 4, 2, 4, 6, 2, 6, 4, 2, 4, 6, 6, 2, 6, 4, ...
[1, 0, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 2, 2, 0, 4, 4, 2, ...
[1, 2, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 2, 4, 0, 2, ...
[1, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 2, 4, 2, ...
Notez que le premier numéro est 1 à chaque fois. La conjecture de Gilbreath est la prédiction que cela continue d'être le cas pour toujours.
La seule façon dont le premier nombre cesserait d'être un 1 est si le nombre suivant après qu'il ne soit ni un 0 ni un 2. La seule façon que le deuxième nombre ne serait pas un 0 ou un 2 est si le nombre après cela n'était ni un 0 ni un 2. Et ainsi de suite.
L'indice du plus ancien nombre, autre que le premier 1, qui n'est ni un 0 ni un 2, ne peut jamais descendre de plus de 1 entre une paire de séquences consécutives. Ce fait a été utilisé pour mettre une borne inférieure très forte quand, si jamais, une séquence peut ne pas avoir un 1 comme premier élément.
Dans ce défi, vous recevrez l'index d'une séquence et vous devez sortir l'index du premier nombre de cette séquence qui n'est pas le premier 1 et qui n'est ni un 0 ni un 2.
Par exemple, dans la 4ème séquence de différence absolue ci-dessus:
[1, 2, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 2, 2, 4, 2, ...
La première entrée qui n'est ni un zéro ni un deux, autre que la première entrée, est la 15e position, indexée sur 14 zéros. Donc, si l'entrée était 4, vous produiriez 14.
Pour les entrées de 1 à 30, les sorties doivent être:
[3, 8, 14, 14, 25, 24, 23, 22, 25, 59, 98, 97, 98, 97, 174, 176, 176, 176, 176, 291, 290, 289, 740, 874, 873, 872, 873, 872, 871, 870]
Il s'agit d' OEIS A000232 .
Cela suppose que vous avez 1 entrées indexées et 0 sorties indexées. Vous pouvez indexer vos entrées et sorties à partir de n'importe quel entier constant, tant que vous pouvez accepter la plage d'entrées correspondant à toutes les séquences.
Exigences: Votre solution doit fonctionner au maximum 1 minute sur une entrée pouvant aller jusqu'à 30. Si elle est suffisamment proche pour que cela dépende des spécifications de l'ordinateur, elle est autorisée.
Le code le plus court gagne.