In dieser Herausforderung von xnor wurden wir gebeten, die XOR-Multiplikation zu implementieren. In dieser Herausforderung besteht das Ziel darin, die ersten n
XOR-Primzahlen zu finden . XOR-Primzahlen sind regulären Primzahlen sehr ähnlich, wie die folgenden Definitionen zeigen:
Definition der Primzahl: Eine positive Zahl größer als 1, die nicht durch Multiplikation zweier Zahlen gebildet werden kann, außer durch Multiplikation von 1 und sich selbst.
Definition von XOR-Primzahl: Eine positive Zahl größer als 1, die nicht durch XOR-Multiplikation zweier Zahlen gebildet werden kann, außer durch die XOR-Multiplikation von 1 und sich selbst. Beachten Sie, dass die XOR-Primzahlen die Sequenz A014580 bilden .
XOR-Multiplikation ist als binäre Langmultiplikation ohne Übertragen definiert. Weitere Informationen zur XOR-Multiplikation finden Sie unter xnors Herausforderung .
Eingang:
Eine ganze Zahl n
.
Ausgabe:
Die ersten n
XOR-Primzahlen.
Hier sind die XOR-Primzahlen unter 500:
2 3 7 11 13 19 25 31 37 41 47 55 59 61 67 73 87 91 97 103 109 115 117 131 137 143 145 157 167 171 185 191 193 203 211 213 229 239 241 247 253 283 285 299 301 313 319 333 351 355 357 361 369 375 379 391 395 397 415 419 425 433 445 451 463 471 477 487 499
F_2[x]
.Antworten:
Pyth, 26 Bytes
Demonstration
Zur Prüfung , ob eine Zahl ein XOR-Primzahl ist, erzeugen wir die komplette Multiplikationstabelle auf diese Zahl nach oben unter Verwendung des Algorithmus von hier , und dann , wie oft diese Zahl erscheint zählen. Wenn es genau 2 ist, ist die Zahl eine Primzahl.
Dann
.f
gibt die ersten n Primzahlen.quelle
Mathematica,
100 bis99 Bytesquelle
Pari / GP , 74 Bytes
4 Bytes gespart dank Charles .
Probieren Sie es online!
Grundsätzlich das Gleiche wie meine Mathematica-Antwort , aber PARI / GP hat kürzere Funktionsnamen.
quelle
n->p=0;while(n,if(polisirreducible(Mod(Pol(binary(p++)),2)),print(p);n--))
.Ceylon, 166 Bytes
Das kann natürlich nicht mit Pyth & Co mithalten ...
Formatiert:
Dies erzeugt eine unendliche Iteration von ganzen Zahlen (beginnend mit 2), filtert sie, indem überprüft wird, ob eine Zahl eine XOR-Primzahl ist, und nimmt die ersten
n
Elemente davon.Diese Filterung funktioniert, indem alle Elemente von 2 bis m-1 (welche m-2 sind) durchlaufen werden und jedes Paar überprüft wird, ob das xor-Produkt gibt
m
. Wenn das dadurch erzeugte Iterable leer ist,m
ist es ein Xor-Prime und daher eingeschlossen.Das XOR-Produkt selbst wird mit demselben Algorithmus (und fast demselben Code) berechnet wie in meiner Antwort für die XOR-Produktberechnung .
quelle
Julia, 116 Bytes
Die primäre Funktion ist die anonyme Funktion in der zweiten Zeile. Es ruft eine
f
Hilfsfunktion auf (was übrigens meine Vorlage für xnors Herausforderung ist).Ungolfed:
quelle