A savoir:
Tout d'abord, les numéros porte-bonheur.
Les numéros porte-bonheur sont générés comme suit:
Prenez tous les nombres naturels:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20...
Ensuite, supprimez chaque deuxième numéro.
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39...
Maintenant, 3c'est sûr.
Supprimez chaque 3e numéro:
1, 3, 7, 9, 13, 15, 19, 21, 25, 27, 31, 33, 37, 39, 43, 45, 49, 51, 55, 59...
Maintenant, 7c'est sûr.
Supprimez tous les 7 numéros.
Continuez et supprimez chaque nnuméro, où nest le premier numéro sûr après une élimination.
La liste finale des numéros sûrs est les numéros porte-bonheur.
Les nombres malchanceux sont composés de listes distinctes de nombres, qui le sont [U1, U2, U3... Un].
U1 est le premier ensemble de chiffres retiré des "candidats" chanceux, ils sont donc:
2, 4, 6, 8, 10, 12, 14, 16, 18, 20...
U2 est le deuxième ensemble de nombres supprimé:
5, 11, 17, 23, 29, 35, 41, 47, 53, 59...
Et ainsi de suite et ainsi de suite ( U3est la troisième liste, U4est la quatrième, etc.)
Défi:
Votre tâche consiste, lorsque deux entrées sont données met n, à générer le mnuméro e dans la liste Un.
Exemples d'entrées et sorties:
(5, 2) -> 29
(10, 1) -> 20
Spécifications:
- Votre programme doit fonctionner
mjusqu'à1e6etnjusqu'à100.- Vous êtes assuré que les deux
metnsont des entiers positifs. - Si vous êtes curieux,
U(1e6, 100)=5,333,213,163. (Merci @pacholik!)
- Vous êtes assuré que les deux
- Votre programme doit calculer cela en 1 jour sur un ordinateur moderne et raisonnable.
C'est le code-golf , donc le code le plus court en octets gagne!
PS: Ce serait bien si quelqu'un venait avec une formule générale pour les générer. Si vous avez une formule, veuillez la mettre dans votre réponse!
(1e6,1e6)?
n=1cas? Comme c'est spécial - pour tous les autres cas, l'index basé sur 0 du prochain numéro porte-bonheur est n-1.