Eine rechtsabschneidbare Primzahl ist eine Primzahl, bei der jedes Präfix eine Primzahl ist (in Basis 10). Eine linksabschneidbare Primzahl ist genau das Gegenteil, wobei jedes Postfix eine Primzahl ist (Primzahlen, die mit 0 beginnen, sind nicht zulässig). Beide Sequenzen sind endlich (es gibt nur 83 rechtsabschneidbare Elemente, während es 4260 linksabschneidbare Elemente gibt).
Sie müssen ein Programm schreiben, das eine einzelne Zahl als Eingabe akzeptiert und die n- te rechtskürzbare Primzahl erzeugt. Wenn das Programm jedoch rückwärts angeordnet gelesen wird , sollte es die n- te linksabschneidbare Primzahl erzeugen .
Um ein Programm rückwärts anzuordnen, teilen wir das Programm in Wörter auf und kehren dann die Reihenfolge der Wörter um. Ein Wort kann aus einer beliebigen Anzahl von Zeichen bestehen.
Zum Beispiel, wenn Folgendes Ihr Programm war:
hello world
1234567890
Folgendes wäre als mögliche Rückwärtsanordnungen zulässig:
Aufteilen auf jeden Charakter:
0987654321
dlrow olleh
Aufteilen auf Leerzeichen:
1234567890
world hello
Beliebige Aufteilung (zur Verdeutlichung Rohre hinzugefügt):
hel|lo w|orld
1|23456|7|8|90
908723456orld
1lo whel
Wenn Sie Ihr Programm rückwärts anordnen, müssen alle Leerzeichen wie bei jedem anderen Zeichen berücksichtigt und umgekehrt werden.
Vorwärts-Testeingaben:
1: 2
2: 3
21: 379
60: 239933
83: 73939133
Rückwärtstest-Eingaben:
1: 2
2: 3
39: 647
187: 29173
4260: 357686312646216567629137
Programme sollten in angemessener Zeit (weniger als eine Minute) ausgeführt werden können.
Dies ist ein Code-Golf , also gewinnt das Programm mit den wenigsten Bytes!
lo w
istorld\n1
. Die Newline beendet das Atom nicht