Hinweis: Dies ist stark von dieser Frage inspiriert .
Aufgabe:
Ihre Aufgabe ist es, das n
th Prim zu generieren , wenn sich jeder Charakter Ihres Programms n
mehrmals an Ort und Stelle wiederholt .
Angenommen, Ihr Programm lautet:
Derp
Jedes Zeichen dort wird einmal wiederholt, daher sollte es ausgegeben werden 2
.
Wenn jedes Zeichen wie folgt dupliziert wird:
DDeerrpp
Dies sollte die 2. Primzahl erzeugen 3
.
Technische Daten:
- Ihr Programm darf keine Eingabe akzeptieren und die jeweilige Primzahl ausgeben.
- Ihr Programm muss für alle Primzahlen funktionieren, sofern genügend Zeit und Speicher vorhanden sind.
- Führende und nachfolgende Zeilenumbrüche sind in Ordnung.
- Die Ausgabe muss in der Standardbasis der Sprache erfolgen. Wenn es keine Standardbasis gibt, ist jede Basis in Ordnung.
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
code-golf
math
primes
source-layout
Clismique
quelle
quelle
Antworten:
Gelee , 13 Bytes
Probieren Sie es online! oder führen Sie die ersten zehn Programme aus .
Hintergrund
Jelly hat verschiedene Arten von String-Literalen. alle fangen mit a an
“
. Wenn das Literal mehrere enthält“
, wird ein Zeichenfolgenarray zurückgegeben“
das die Zeichenfolgen voneinander trennt.Zum Beispiel
“abc“def”
Ausbeuten['abc', 'def']
.Abhängig vom letzten Zeichen des Literales (eines davon
”«»‘’
, wo«
es derzeit nicht implementiert ist) kann man zwischen den verschiedenen Arten von Literalen wählen. Für erhalten‘
wir die Codepunkte in Jellys Codepage anstelle der entsprechenden Unicode-Zeichen.Zum Beispiel
“abc“def‘
Ausbeuten[[97, 98, 99], [100, 101, 102]]
.Die Literale in den ersten drei Programmen entsprechen den folgenden Codepunktarrays.
Wie es funktioniert ( n = 3 )
quelle
GS2 ( Festschreiben 67fea47 ),
63 BytesWie es funktioniert
Wie die meisten Befehle ist GS2
d
überlastet. Am Anfang befindet sich eine leere Liste (die Eingabe oder das Fehlen davon) auf dem Stapel, alsod
berechnet sie ihre Summe. Nach der ersten Iteration befindet sich eine 0 auf dem Stapel undd
berechnet seine Parität (auch 0 ). Unabhängig davon, wie oft wir uns wiederholend
, ist das Ergebnis immer eine einzelne 0 .Der nächste Teil ist unkompliziert. Der Befehl
n
füllt den oberen Bereich des Stapels und gibt die nächste Primzahl aus. Dasn
k- fache Wiederholen berechnet also das k prime.Schließlich wendet der Befehl einfach str am oberen Rand des Stapels an, wodurch eine Zahl in ihre Zeichenfolgendarstellung konvertiert wird und Zeichenfolgen nicht beeinflusst werden. Unabhängig davon, wie oft wir uns wiederholen
R
, ist das Ergebnis die Zeichenfolgendarstellung des k prime.quelle