Sachen zu wissen:
Erstens Glückszahlen.
Glückszahlen werden wie folgt generiert:
Nehmen Sie alle natürlichen Zahlen:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20...
Entfernen Sie dann jede zweite Zahl.
1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39...
Jetzt 3ist sicher.
Entfernen Sie jede dritte Nummer:
1, 3, 7, 9, 13, 15, 19, 21, 25, 27, 31, 33, 37, 39, 43, 45, 49, 51, 55, 59...
Jetzt 7ist sicher.
Entfernen Sie jede 7. Nummer.
Fahren Sie fort und entfernen Sie jede ndritte Nummer. Dabei nhandelt es sich um die erste sichere Nummer nach einer Eliminierung.
Die endgültige Liste der sicheren Zahlen sind die Glückszahlen.
Die Unglückszahlen setzen sich aus separaten Zahlenlisten zusammen, die es sind [U1, U2, U3... Un].
U1 ist der erste Satz von Zahlen, der von den glücklichen "Kandidaten" entfernt wurde, also sind sie:
2, 4, 6, 8, 10, 12, 14, 16, 18, 20...
U2 ist der zweite Satz von Zahlen entfernt:
5, 11, 17, 23, 29, 35, 41, 47, 53, 59...
Und so weiter und so fort ( U3ist die dritte Liste, U4ist die vierte usw.)
Herausforderung:
Ihre Aufgabe ist es, bei zwei Eingaben mund ndie mth Nummer in der Liste zu generieren Un.
Beispiel Ein- und Ausgänge:
(5, 2) -> 29
(10, 1) -> 20
Technische Daten:
- Ihr Programm muss für
mbis zu1e6undnbis zu100.- Sie sind garantiert, dass beide
mundnpositive ganze Zahlen sind. - Wenn Sie neugierig sind,
U(1e6, 100)=5,333,213,163. (Danke @pacholik!)
- Sie sind garantiert, dass beide
- Ihr Programm muss dies innerhalb eines Tages auf einem vernünftigen modernen Computer berechnen.
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
PS: Es wäre schön, wenn jemand eine allgemeine Formel zur Erzeugung dieser Formeln ausdenken würde. Wenn Sie eine Formel haben, geben Sie diese bitte in Ihre Antwort ein!
(1e6,1e6)?
n=1Fall nicht funktioniert ? Da dies besonders ist - für alle anderen Fälle ist der 0-basierte Index der nächsten Glückszahl n-1.