Eingang
Keine Eingabe für diese Herausforderung
Die Herausforderung
Schreiben Sie einen Code, der Folgendes ausgibt:
Die ersten 10 Primzahlen, deren Summe der Anzahl der Bytes Ihres Codes entspricht
Beispiele
Nehmen wir an, Ihr Code ist Co&%423@k"oo"
der 13 bytes
Code, den Sie ausgeben müssen. Dies [67, 139, 157, 193, 229, 283, 337, 373, 409, 463]
sind die ersten 10 Primzahlen, deren Summe .... ok, Sie haben es verstanden!
Wenn Ihr Code ist 8 bytes
, müssen Sie ausgeben[17, 53, 71, 107, 233, 251, 431, 503, 521, 701]
Regeln
Sie dürfen nur die ersten 10 ^ 8 Primzahlen verwenden.
Dies bedeutet, dass alle Ihre Zahlen <2038074743 = 10 ^ 8 Primzahl sein müssen
Wenn Sie in diesem Bereich keine 10 Primzahlen finden , die zu Ihren Bytes passen, müssen Sie Ihren Code anpassen (möglicherweise müssen Sie sogar einige Bytes hinzufügen!), Um eine " funktionierende Anzahl von Bytes " zu finden.
Geben Sie einfach die 10 Primzahlen so aus, wie Sie möchten
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
Antworten:
Neim ,
1087 Bytes-1 Byte nur dank ASCII.
Probieren Sie es online!
Ausgänge:
Dies (zumindest der Ansatz) ist nicht golffähig.
Erläuterung
quelle
νᛦ𝐋Λ𝐬7𝔼
für 7 ... edit:π
->ν
: pJelly , 14 Bytes
Probieren Sie es online!
Dies druckt:
Wie es funktioniert
quelle
Pyth , 14 Bytes
Probieren Sie es hier aus.
Dies ist 14 Bytes und druckt:
Pyth , 16 Bytes
Probieren Sie es hier aus!
Es ist zu beachten, dass dies 15 Bytes sein
.f&qssM`Z16P_ZTZ
können. Es gibt jedoch keine Primzahlen mit 15 als Summe ihrer Ziffern, da dies15
durch teilbar ist3
, was bedeuten würde, dass die Zahl auch durch teilbar wäre3
und daher keine Primzahl ist.Dies ist 16 Bytes lang und gibt Folgendes aus:
Wie?
Erklärung 1
Erklärung 2
quelle
Schale , 13 Bytes
Probieren Sie es online!
Erläuterung
quelle
Haskell ,
7771 BytesProbieren Sie es online!
6 Bytes dank Laikoni gespart
Für 71 Bytes:
1999999999 ist die Zahl mit der maximalen Anzahl von Stellen im zulässigen Bereich, und diese Summe beträgt 82. Alle Programme, die mehr als 82 Byte umfassen, erfüllen die Bedingung nicht. Ich hoffe, dass 77 Bytes in Ordnung sind, aber ich weiß es nicht (es läuft immer noch auf meinem Computer).
EDIT: Eine leicht optimierte Version ergab für 77 Bytes:
quelle
Jelly ,
1413 BytesProbieren Sie es online!
Wie?
quelle
Brachylog , 13 Bytes
Probieren Sie es online!
quelle
05AB1E , 10 Bytes
Probieren Sie es online!
Das
}
wird als Füllzeichen verwendet, da 9 eine ungültige Byteanzahl ist.Ausgabe:
[19, 37, 73, 109, 127, 163, 181, 271, 307, 433]
Erläuterung
Fast 8 Bytes
Dies wäre gültig, wenn ein weiteres Byte abgeschaltet werden könnte.
Probieren Sie es online!
Ausgabe:
[17, 53, 71, 107, 233, 251, 431, 503, 521, 701]
Erläuterung
quelle
Mathematica, 52 Bytes
Danke an @Kein Baum für -6 Bytes
quelle
Select
wie viele Dinge Sie zurückgeben möchten:Select[Prime@Range[10^6],Tr@IntegerDigits@#==52&,10]
Select[Prime@Range[77705],Tr@IntegerDigits@#==50&]
J, 29 Bytes
Probieren Sie es online!
Funktioniert definitiv mit der REPL, funktioniert wahrscheinlich auch mit einem regulären Programm (nicht sicher, wie J die Ausgabe ausführt, um ehrlich zu sein).
Erster Durchgang, nicht besonders ideal, aber ich kann mir keine klügeren Ansätze vorstellen. Wir werden untersuchen, wie man eine kleinere Sequenz hartcodiert.
Erläuterung
872 garantiert, dass nur die ersten 10 Primzahlen mit einer digitalen Summe von 29 verwendet werden.
quelle
V ,
7371 BytesProbieren Sie es online!
Einfache Komprimierung der Ersetzung von Teilzeichenfolgen - Ich habe alle möglichen Antwortausgaben überprüft und dann einige Tests durchgeführt, bei denen "eine einfache Ersetzung von Zeichenfolgen verwendet wird, die die meisten Zeichen spart". zB diese Tabelle erzeugen . [edit: Ich schaute noch einmal auf den Tisch und sah, dass ich stattdessen die 71-Byte-Version machen könnte].
Die höheren Primzahlen enthalten mehr lange Reihen von 9 Zeichen, und das Beste, was ich gefunden habe, war, dass die Ziffern 73 ergeben. Das Muster 89999 -> 1 Zeichen verringert den Text von 99 Byte auf 63 Byte. Die Suche nach einem Weg, 'a' -> '89999' in den verbleibenden 10 Bytes rückgängig zu machen, führte mich zu V.
quelle
Japt , 19 Bytes
Probier es aus
Explantaion
Generieren Sie ein Array von Ganzzahlen
õ
(L
) im Quadrat von 1 bis 100 ( ).Filter (
f
) durchläuft jeweils eine Funktion, wobeiZ
das aktuelle Element ist.Überprüfen Sie, ob
Z
es sich um eine Primzahl handelt.Logisches UND (
&&
).In
Z
ein Array von Ziffern aufteilen (ì
) und durch Addition reduzieren (x
).Prüfen Sie auf Gleichheit mit
19
.Slice (
¯
) bis zum 10. Element und gibt das resultierende Array implizit aus.quelle
Japt , 19 Bytes
Probieren Sie es online! mit dem
-Q
Flag, um das Array zu formatieren.Gibt die ersten 10 Primzahlen aus, deren Ziffern addieren zu
19
:Beachten Sie, dass dies auf 18 Bytes (
ì x
→ìx
) beschränkt sein kann, aber keine Primzahlen mit einer Ziffernsumme von 18 existieren.Erläuterung
Ordnen Sie das Array
[0, ..., 9]
mit der folgenden Funktion zu, wobeiX
der aktuelle Wert ist.Geben Sie die erste Ganzzahl zurück, die true aus der folgenden Funktion zurückgibt. Dabei
Z
handelt es sich um den aktuellen WertÜberprüfen Sie, ob diese Zahl Primzahl ist, und ...
Die Summe (
x
) der Ziffern (ì
) inZ
equals (¥
) 19,Und
X
ist falsch («
ist "und nicht", oder&&!
). Dies dekrementiert auchX
(´
).Das resultierende Array wird implizit ausgegeben.
quelle
PARI / GP, 40 Bytes
Nicht viel Golf (wählen Sie die
x
mit der Summe der Ziffern 40 unter den ersten 8600 Primzahlen). Ausgabe ist:quelle
Pyke , 10 Bytes
Probieren Sie es hier aus!
quelle
Ruby 2.4.1, 74 Bytes
Ich würde nie eine der Codegolf-optimierten Sprachen schlagen, aber es hat trotzdem Spaß gemacht, es in Ruby zu machen. Es ist frustrierend, dass Prime nicht in Core, sondern in der Standardbibliothek enthalten ist. Ich bin auch frustriert, dass ich Haskell nicht schlagen kann.
quelle
Paradoc (v0.2.7 +), 10 Byte (CP-1252)
Probieren Sie es online!
Etwas fraglich, da alle Zahlen ohne Trennzeichen gedruckt werden. Ein 11-Byte-Programm, das jede Zahl in einer eigenen Zeile ausgibt:
Erwähnenswert ist nur die Obergrenze, die etwas schwieriger zu konstruieren ist:
Iè
18² = 324.quelle
Bubblegum , 37 Bytes
Probieren Sie es online!
Ausgabe ist
29989,39799,39979,48799,48889,49789,56989,58699,58789,58897
quelle