Aufgabe
Ihre Aufgabe ist es, alle positiven Zahlen zu drucken oder auszugeben, in denen jeder mehrstellige Teilstring in seiner Dezimaldarstellung auch eine Primzahl ist. Wenn die Zahl mindestens 2 Ziffern hat, würde dies bedeuten, dass die Zahl selbst auch eine Primzahl sein muss.
Beispiel
6197
in der Folge ist , weil jedes Teilzeichen in mehrstelligen6197
prim ist , nämlich:61
,19
,97
,619
,197
,6197
(selbst).- Beachten Sie, dass dies
6
keine Primzahl ist, sich aber6197
immer noch in der Sequenz befindet, da6
es sich nicht um eine mehrstellige Teilzeichenfolge von handelt6197
. 8
ist auch in der Sequenz, weil jeder mehrstellige Teilstring in8
Primzahl ist. Es gibt keine mehrstellige Teilzeichenfolge8
, daher handelt es sich um eine leere Wahrheit .
Technische Daten
- Standard Lücken gelten, mit der Ausnahme , dass Sie erlaubt die Ausgabe oder Speicherung von Informationen zu codieren , um die Ausgabe in Ihrem Programm verwendet.
- Die Zahlen in der Ausgabe können in beliebiger Reihenfolge sein .
- Die Zahlen in der Ausgabe dürfen Duplikate haben.
- Sie können ein beliebiges Trennzeichen verwenden , wenn Sie anstelle der Ausgabe drucken möchten.
- Sie erlaubt Präfix und / oder Postfix ausgegeben , wenn Sie anstelle von Ausgabe drucken wählen.
- Der Abscheider und der Präfix und Postfix des möglicherweise nicht enthalten , keine Ziffern (U + U + 0030 bis 0039).
Vollständige Liste (58 Artikel)
1
2
3
4
5
6
7
8
9
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97
113
131
137
173
179
197
311
313
317
373
379
419
431
479
613
617
619
673
719
797
971
1373
3137
3797
6131
6173
6197
9719
Referenz
- OEIS A131648 (unvollständige Liste)
Wie immer können Sie in den Kommentaren alles ansprechen, was ich klarstellen sollte.
Antworten:
Brachylog , 18 Bytes
Probieren Sie es online aus!
Also ... bin ich bereit für das "Kopfgeld" ? : D.
quelle
05AB1E ,
1513 BytesCode:
Erläuterung:
Verwendet die CP-1252- Codierung. Probieren Sie es online aus! (kann einige Sekunden dauern).
quelle
Brachylog ,
1817151615 BytesProbieren Sie es online aus!
-1 Byte nach einer Diskussion mit Fatalize hat mich dazu inspiriert zu sehen, was passiert, wenn ich das
l
und das<
herum tausche .Dieses Prädikat generiert die Ausgabe über die Eingabevariable, solange die Ausgabevariable nicht eingeschränkt wird. Da Duplikate zulässig sind, wird jede Zahl mit einer Multiplizität von 2 hoch der Zahl ihrer Ziffern erzeugt, bei denen es sich um Primzahlen handelt.
Ältere Versionen:
quelle
8ḟ⟦₁{sᶠ{Ḋ|ṗ}ᵐ&}ˢ
Brachylog , 18 Bytes
Eine weitere Brachylog-Lösung. Ich konnte es nicht kürzer als die Brachylog-Lösung von Erik The Outgolfer machen. es ist genau die gleiche Länge, nähert sich aber der Generation aus der entgegengesetzten Richtung.
Es sieht so aus, als hätte Unrelated String dies von vielen Charakteren geschlagen, denen ich gratuliere.
Erläuterung:
Probieren Sie es online aus!
quelle
Gelee , 17 Bytes
Meine erste Jelly Antwort! 3 Bytes dank @Leaky Nun gespart !
Probieren Sie es online aus
Erläuterung:
quelle
RÇÐf
kann durch ersetzt werdenǀT
.ṖÐfḌÆP€
kann durch ersetzt werdenḌḟDÆP
.Java 8, 182 Bytes
Port of Gastropners C (gcc) Antwort , also stellen Sie sicher, dass Sie seine Antwort positiv bewerten!
Probieren Sie es online aus.
Erläuterung:
quelle
PowerShell v2 +,
107104 ByteWarnung: Etwas langsam
Schleift von
11
bis1e4
(dh10000
) und zieht Zahlen mit demWhere-Object
Selektor (|?{...}
) heraus. Die Klausel besteht aus zwei Komponenten - der ersten Schleife von11
bis zur aktuellen Nummer undWhere-Object
zum Herausziehen der Nummern, die einen Teilstring der aktuellen Nummer bilden (über den-match
Regex-Operator). Wir speichern diese Teilzeichenfolgen in$x
. Der zweite Teil durchläuft$x
und dientWhere-Object
zum Herausziehen aller Primzahlen unter Verwendung des primären Regex . Wir nehmen dann das.count
von beiden und prüfen tatsächlich, ob diese tatsächlich sind-eq
. Zum Beispiel971
wird haben$x = (71,97,971)
und jeder von diesen ist prim, so3-eq3
ist$TRUE
und971
wird somit ausgewählt.Dieses Ergebnis ist mit einem Bereich Array-verkettet
1..10
. Das resultierende Array bleibt in der Pipeline und die Ausgabe ist implizit, wobei standardmäßig eine neue Zeile zwischen den Elementen steht.quelle
Japt , 15 Bytes
Probier es aus
quelle
C (gcc) ,
144142140136134132 Bytes-2 danke an Kevin Cruijssen. -2 dank Deckenkatze
... Und inspiriert davon können wir weitere 2 Bytes aus dieser for-Schleife erhalten.
Auch schamlos hat der eher bessere Prime Checker aus Kevin Cruijssens Antwort für einen weiteren -4 geklaut .
Probieren Sie es online aus!
quelle
||n<10
kann|n<10
undfor(n=1;n<1e4;n++)
kannfor(n=0;++n<1e4;)
für -2 Bytes sein.Malbolge Unshackled (20-Trit-Rotationsvariante), 2.5254e7 Bytes oder 1.9809e7 Bytes
Die Größe dieser Antwort überschreitet die maximale Größe des postbaren Programms (eh), sodass sich der Code in meinem GitHub-Repository befindet (Hinweis: Kopieren Sie den Code nicht mit STRG + A und STRG + C, klicken Sie einfach mit der rechten Maustaste und klicken Sie auf "Zielelement speichern unter". .. ").
Wie führe ich das aus?
Dies könnte ein schwieriger Teil sein, da der naive Haskell-Dolmetscher ewig brauchen wird, um dies auszuführen. TIO hat einen anständigen Malbogle Unshackled-Interpreter, aber leider kann ich ihn nicht verwenden (Einschränkungen).
Das beste, das ich finden konnte, ist die Variante mit fester 20-Trit-Rotationsbreite, die sehr gut funktioniert.
Um den Dolmetscher etwas schneller zu machen, habe ich alle Schecks von Matthias Lutters Malbolge Unshackled-Dolmetscher entfernt.
Leistungshinweise
Die Anwendung lief ungefähr 40 Minuten auf meinem Computer und erzeugte HEX-Nummern der Sequenz. Ich habe es nach ungefähr einer Stunde Berechnungen gestoppt und es endete mit 0x11.
Beachten Sie, dass sich diese Antwort von meiner anderen unterscheidet, da diese tatsächlich die Zahlen berechnet und so erstellt werden kann, dass sie auf unbestimmte Zeit berechnet werden.
Die Anwendung weist den Spinup-Puffer zu, der etwa 7 Gigabyte groß ist. Bereiten Sie also Ihren freien RAM besser vor.
Alternative Variante
Die alternative Variante verbraucht etwa 2 Gigabyte weniger Speicher, erzeugt jedoch die Ausgabe in Form von ASCII-Zeichen (0 = ASCII (0x0), 10 = Zeilenumbruch usw.) und ist hier verfügbar . Aufgrund der Herausforderungsanforderungen konkurriert es jedoch nicht
quelle
Python 3 , 118 Bytes
Probieren Sie es online aus!
Erläuterung
Warnung: Diese Lösung enthält keine tatsächlichen Zeichenfolgen.
quelle
Ruby, 81 + 8 = 89 Bytes
+8 Bytes für
-rprime
.Siehe es auf repl.it: https://repl.it/CniR/2
quelle
Perl 6 ,
47 4443 BytesErläuterung:
quelle
C #,
261249247 Bytes12 Bytes dank Leaky Nun gespart
Dies kompiliert zu a
Func<List<int>>
.Die formatierte Version sieht folgendermaßen aus:
quelle
false
odertrue
verwenden Sie0>1
und0<1
Swift 4 , 144 Bytes
Probieren Sie es online aus!
Erläuterung
quelle
JavaScript (Node.js) , 130 Byte
wenn ich unendlich Stapel annehmen kann
i*i<=n&&
kann entfernt und wirdi*i>n
abwechselnd aufi>=n
das den Code von 9 Bytes reduziert und vielleicht wichtigste Funktion zu rekursiven konvertieren: https://tio.run/##LYpBDoIwEEX33AMyAxVbXUmccgX2xkWDRYeQaSPqyrvXkrj5ef/lze7j1vHJ8bWTcPMpTQRMWjm6XJFs0/DZ@EM/ASunBmCsKtfG9/rIiJ0rIoEoJpNbKXPdx@1jx5akGEiytqdNYp2nNFr / wR @ xHkD2Rn81dpLGIGtYfLuEO0yAmH4 (119 Byte)Probieren Sie es online aus!
quelle
Malbolge , 1361 Bytes
Einfache und langweilige Version. Zeigt die höchsten Zahlen an.
Probieren Sie es online aus!
quelle
TI-83/84 BASIC, 124 Bytes
Schleifen über die ersten 10k-Ganzzahlen. Richtet einen Zähler in N ein, um jede Teilstring-Primzahl und int (log (A) zu überprüfen) Teilzeichenfolge mindestens 2-stellig. 10 ^ ... und AnsfPart (iPart (,,, generieren die aktuelle Teilzeichenfolge, um die Primalität zu überprüfen). In den folgenden 3 Zeilen wird die Primalitätsprüfung in Ans auf 1 oder 0 gesetzt. Wenn die Teilzeichenfolge keine Primzahl ist Wir erhöhen N und nachdem alle Teilzeichenfolgen überprüft wurden, ob N noch 0 ist, drucken wir die aktuelle Zahl.
Möglicherweise könnte eine Optimierung vorgenommen werden, um die Effizienz der Primalitätsprüfung für diesen Test zu erhöhen. Ich bin nur froh, dass ich einen Algorithmus in weniger Bytes gefunden habe, als die Ausgabe direkt in der TI-83-Formatierung zu speichern!
quelle
Python 3.8 (Vorabversion) , 194 Byte
Probieren Sie es online aus!
quelle
PHP , 135 Bytes
Probieren Sie es online aus!
quelle