Eine andere Sequenz, eine andere Herausforderung. *
Definition
Ein herausragendes p
in dieser Sequenz ist, nennen wir es A
, genau dann , wenn für jede Ziffer d
in p
‚s Dezimalentwicklung, Sie ersetzen d
mit d
Kopien d
und die resultierende ganze Zahl ist noch prime; Nullen sind nicht erlaubt.
Zum Beispiel 11
ist trivial in dieser Reihenfolge (es ist übrigens die erste Zahl). Als nächstes kommt in der Sequenz 31
, weil 3331
es auch Primzahl ist; dann ist 53
da 55555333
auch prime und so weiter.
Herausforderung
Bei einer Eingabe n
return A(n)
, dh das n
th Element in dieser Reihenfolge.
Beispiele
Hier sind die ersten 20 Begriffe, mit denen Sie beginnen können. Dies ist A057628 bei OEIS.
11, 31, 53, 131, 149, 223, 283, 311, 313, 331, 397, 463, 641, 691, 937, 941, 1439, 1511, 1741, 1871
Dieses Mittel A(0) = 11
, A(1) = 31
usw., bei der Verwendung von Null Indizierung.
Regeln
- Sie können null- oder einsbasierte Indizierung wählen. Bitte geben Sie in Ihrer Antwort an, welche.
- Anstatt nur das
n
th-Element zurückzugeben, können Sie auch die erstenn
Terme zurückgeben. - Sie können davon ausgehen, dass die Eingabe / Ausgabe nicht größer ist als das native Ganzzahlformat Ihrer Sprache. Die wiederholte Primzahl kann jedoch größer sein als das native Format Ihrer Sprache, sodass dies berücksichtigt werden muss.
- Zum Beispiel hat
1871
die letzte Nummer der Beispiele eine entsprechende Primzahl von18888888877777771
, die ziemlich viel größer als die von Standard-INT32 ist. - Es ist entweder ein vollständiges Programm oder eine Funktion zulässig. Bei einer Funktion können Sie die Ausgabe zurückgeben, anstatt sie zu drucken.
- Die Ausgabe kann an die Konsole erfolgen, von einer Funktion zurückgegeben, in einem Warnungs-Popup usw. angezeigt werden.
- Standardlücken sind verboten.
- Dies ist Codegolf, daher gelten alle üblichen Golfregeln, und der kürzeste Code (in Byte) gewinnt.
* Um fair zu sein, ich hatte mir die ersten Begriffe der Sequenz ausgedacht und nur ein paar Zahlen ausprobiert und bin dann zu OEIS gegangen, um den Rest der Sequenz abzurufen.
quelle
169
selbst keine Primzahl ist, ist es13 * 13
.Antworten:
Schale , 15 Bytes
Probieren Sie es online!
Erik der Outgolfer hat ein Byte gespeichert. Die Verwendung von
ṗ
anstattεp
würde ein weiteres Byte speichern, aber das macht das Programm so langsam, dass es unsere Gerade für n = 2 ergibt.quelle
ṗ
den Dolmetscher wirklich beschleunigen , es ist verrückt, wie05AB1E ,
1413 Bytes-1 Byte Danke an Emigna !
Probieren Sie es online!
Erläuterung
quelle
Jelly ,
18 bis14 BytesProbieren Sie es online!
Mr. Xcoder: -1 Byte (logisch alles)
Erik der Outgolfer: -2 Bytes (eine Zeile statt zwei)
HyperNeutrino: -1 Byte (erste n Elemente der Sequenz zurückgeben)
Erläuterung
Bearbeiten: Ursprünglich wurde eine Antwort gesendet, die Zahlen mit 0 in der Dezimaldarstellung enthielt, was ausdrücklich nicht zulässig ist.
quelle
Wolfram Language (Mathematica) , 100 Byte
Probieren Sie es online!
Jonathan Frech sparte 3 Bytes
und -7 Bytes von JungHwan min
-15 Bytes von Martin Ender
auch danke an Jenny Mathy
quelle
Alice ,
7270666256 BytesDanke an Leo für das Speichern von 5 Bytes.
Probieren Sie es online!
Verwendet 1-basierte Eingabe.
Erläuterung
Der sauberste Golf - Trick (auch wenn es nur ein paar Bytes speichert) ist , dass ich einen Primzahltest bin mit der gibt
0
für Composite - n fürn
für Nicht-Verbund n . Auf diese Weise müssen wir das Ergebnis nicht direkt in einer Bedingung verwenden, sondern können es direkt an den nächsten Teil weitergeben, der prüft, ob die Eingabe keine Nullen enthält.quelle
Python 2 , 130 Bytes
Probieren Sie es online!
Python 2 ,
195179167140138136135134 Bytesxrange
stattrange
, umgeht damit aMemoryError
und verdichtet die Primfunktion; Verbesserung der Ganzzahlenzählung.|
zum Speichern von Bytesor
.~-
anstelle von0**
zum Invertieren der Existenz einer Null inj
,&
gefolgt von einem echten Booleschen Wert, um die Boolesche Eigenschaft dieses Werts zu isolieren.~-A&B&C
(gleichbedeutend mit(not A) and B and C
) mitA, B, C
Booleschen seinA<B==C
.Probieren Sie es online! (1-indiziert)
Erläuterung
Definiert eine Hauptfunktion,
f
die einen ganzzahligen Indexn
und einen voreingestellten Wert annimmtj
, die aktuelle Sequenz (9
zur Verbesserung der Leistung bei gleichzeitiger Beibehaltung der Programmgröße) und eine Hauptprüffunktion .Solange
n
nicht Null ist, wurde dern
-te Sequenzeintrag noch nicht gefunden. Somitj
wird inkrementiert undn
um eins dekrementiert, wenn fj
eine Zahl ist, die die erforderlichen Eigenschaften erfüllt.Wenn die Schleife endet,
j
wird dern
-te Sequenzeintrag und damit gedruckt.quelle
Pyth , 21 Bytes
Probieren Sie es hier aus!
Vielmehr lange wie Pyth kein hat Dezimalentwicklung eingebaut.
.f
), die:.AKjZT
) und (&
) ...*VK`Z
zusammengefügten und in eine Ganzzahl (ss
) konvertierten Ziffern ( ) sind prime (P_
) und (&
) ...P_
).quelle
e
gemäß einer neuen Regeländerung entfernen .Perl 6 , 51 Bytes
Probieren Sie es online!
grep {...}, 2..*
Filtert die unendliche Folge natürlicher Zahlen ab 2 mithilfe der Prädikatfunktion zwischen den geschweiften Klammern.(...)[$_]
Indexiert mit dem Argument der Funktion in diese gefilterte Liste$_
.!/0/
filtert Zahlen heraus, die eine Null enthalten.S:g/./{$/ x $/}/
repliziert jede Ziffer in der Dezimalerweiterung der Testnummer.is-prime $_ & S:g/./{$/ x $/}/
ruft die eingebautenis-prime
Funktion mit einem und einer Verknüpfung von$_
, der Testnummer und der Nummer auf, die sich aus der Replikation ihrer Ziffern ergibt. Die Funktion gibt true zurück, wenn beide Member von and-junction Primzahlen sind.quelle
J, 81 Bytes
Das ist eine dieser Situationen, für die ich noch keine gute J-Lösung gefunden habe.
Trotzdem poste ich dies in der Hoffnung, etwas Neues zu lernen.
f
sagt uns, ob eine gegebene Zahl eine "wiederholte Ziffern-Primzahl" ist. Es setzt sich wie folgt zusammen:Und schließlich das Haupt-Do ... While-Verb mit seinem lästigen, scheinbar unvermeidbaren Boilerplate, das sich aus der Tatsache ergibt, dass wir eine Liste zum Speichern unseres Fortschritts verwenden müssen, für die sowohl "aktuelle Primzahlen" als auch "bisher gefundene" Register erforderlich sind , da unser linkes Argument bereits verwendet wird, um die Stoppbedingung zu speichern, dh
n
. Dies bedeutet, dass wir für die einfache Aufgabe, args ([
und]
) anzugeben und unsere 2-Element-Liste ({.
und{:
) zu entpacken, viele wertvolle Bytes verwenden müssen :Probieren Sie es online!
quelle
f
die in Klammern gesetzte Hilfsfunktion ersetzen ? Außerdem habe ich versucht, die Helfer-Funktion zu nutzen1 p:('x',~"."0#])&.":
, was leider Primzahlen mit '0' nicht erfolgreich ausschließt. Hast du irgendwelche Gedanken? Es muss auch den'x',~
Teil haben, um zusätzliche Präzision zu erhalten ...(((0>.-)((*&(1&p:)0&e.|10#.#~),.&.":))([,(+*)~)])/^:_@,&2
, verwenden Sie10x
, um den Bereich zu erweitern, andernfalls überspringt n = 15 937