Einleitung (kann ignoriert werden)
Es ist ein bisschen langweilig, alle positiven Zahlen in der regulären Reihenfolge (1, 2, 3, ...) anzuordnen, nicht wahr? Hier ist also eine Reihe von Herausforderungen im Zusammenhang mit Permutationen (Umformungen) aller positiven Zahlen. Dies ist die dritte Herausforderung in dieser Reihe (Links zur ersten und zweiten Herausforderung).
In dieser Herausforderung ordnen wir die natürlichen Zahlen in Reihen mit zunehmender Länge so an, dass die Summe jeder Reihe eine Primzahl ist. Was ich an diesem Arrangement wirklich erstaunlich finde, ist, dass jede natürliche Zahl einen Platz in diesem Arrangement hat. Es werden keine Nummern übersprungen!
Diese Visualisierung dieser Anordnung sieht folgendermaßen aus:
row numbers sum
1 1 1
2 2 3 5
3 4 5 8 17
4 6 7 9 15 37
5 10 11 12 13 21 67
6 14 16 17 18 19 23 107
etc.
Wir können die Elemente aus den Zeilen in diesem Dreieck lesen. Die ersten 20 Elemente sind: 1, 2, 3, 4, 5, 8, 6 , 7, 9, 15, 10, 11, 12, 13, 21, 14, 16, 17, 18, 19 ( ja, das gibt es ein in dieser Sequenz verstecktes New Order-Lied ).
Da dies eine „reine Sequenz“ Herausforderung ist, die Aufgabe zu Ausgang ist für ein gegebenen als Eingabe, wobei ist A162371 .
Aufgabe
Eine ganze Zahl Eingang gegebenen , Ausgabe in Ganzzahl - Format.
ist definiert als das te Element der lexikographisch frühesten Permutation der natürlichen Zahlen, so dass bei Betrachtung als von Zeilen gelesenes Dreieck für n> 1 die Zeilensummen Primzahlen sind. Da die erste lexikographische Permutation der natürlichen Zahlen beginnen bei 1, 1 ist zu beachten , dass durch diese Definition und ist nicht prim zu sein , erforderlich ist . Dies ist die OEIS-Sequenz A162371 .
Hinweis: Hier wird eine 1-basierte Indizierung angenommen. Sie können eine 0-basierte Indizierung verwenden, also usw. Bitte erwähnen Sie dies in Ihrer Antwort, wenn Sie dies verwenden möchten.
Testfälle
Input | Output
---------------
1 | 1
5 | 5
20 | 19
50 | 50
78 | 87
123 | 123
1234 | 1233
3000 | 3000
9999 | 9999
29890 | 29913
Regeln
- Eingabe und Ausgabe sind ganze Zahlen (Ihr Programm sollte mindestens Eingabe und Ausgabe im Bereich von 1 bis 32767 unterstützen)
- Ungültige Eingaben (0, Gleitkommazahlen, Zeichenfolgen, negative Werte usw.) können zu unvorhergesehenen Ausgaben, Fehlern oder (un) definiertem Verhalten führen.
- Es gelten die Standard- E / A-Regeln .
- Standardlücken sind verboten.
- Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes