Der Primcluster einer ganzen Zahl N höher als 2 ist definiert als das Paar, das aus der höchsten Primzahl gebildet wird, die streng niedriger als N ist, und der niedrigsten Primzahl, die streng höher als N ist .
Beachten Sie, dass nach der obigen Definition, wenn die Ganzzahl selbst eine Primzahl selbst ist, ihr Primzahlcluster das Paar der vorhergehenden und nachfolgenden Primzahlen ist.
Aufgabe
Wenn zwei ganze Zahlen, N , M ( N, M ≥ 3 ) gegeben sind, wird ein Wahrheits- / Falschwert ausgegeben, der darauf basiert, ob N und M den gleichen Primcluster haben.
Dies ist Code-Golf , daher ist das Ziel, Ihre Byteanzahl so weit wie möglich zu reduzieren. Somit gewinnt der kürzeste Code in jeder Programmiersprache .
Testfälle / Beispiele
Zum Beispiel die Haupt Cluster von 9 sind [7, 11]
, weil:
- 7 ist die höchste Primzahl, die streng niedriger als 9 ist , und
- 11 ist die niedrigste Primzahl, die streng höher als 9 ist .
Auch die die Haupt Cluster von 67 ist [61, 71]
( man beachte , dass 67 eine Primzahl ist).
Wahrheitspaare
8, 10 20, 22 65, 65 73, 73 86, 84 326, 318 513, 518
Falsche Paare
4, 5 6, 8 409, 401 348, 347 419, 418 311, 313 326, 305
quelle
Antworten:
Gelee ,
64354 BytesProbieren Sie es online aus! oder Probieren Sie alle Testfälle aus .
Wie es funktioniert
Funktioniert, weil zwei Zahlen unterschiedliche Primzahlen haben, wenn sich zwischen ihnen eine Primzahl befindet oder eine der beiden Zahlen selbst eine Primzahl ist. es sei denn , beide Zahlen gleich sind, in welchem Fall
E
kehrt1
sowieso (alle Elemente in einem einzigen Array-Elemente gleich sind).quelle
Perl 6 , 52 Bytes
Probier es aus
Erweitert:
quelle
Python 3 ,
1039591 BytesProbieren Sie es online aus!
quelle
Ruby ,
5754 BytesProbieren Sie es online aus!
Verwendet den schrecklichen Regex-Primalitätstest von meiner Antwort (die ich vergessen hatte, bis ich darauf geklickt habe) auf die verwandte Frage. Ist diese Zahl eine Primzahl? . Da wir N, M ≥ 3 haben, kann die Prüfung für 1 aus dem Muster entfernt werden, wodurch die Anzahl der Bytes geringer ist als bei Verwendung des eingebauten Musters.
Hinweis: Der Regex-Primalitätstest ist pathologisch und unglaublich ineffizient. Ich glaube, es ist mindestens O (n!), Obwohl ich momentan keine Zeit habe, es herauszufinden. Es dauerte zwölf Sekunden, bis 100.001 überprüft wurden, und es wurde fünf oder zehn Minuten lang auf 1.000.001 geschliffen, bevor ich es stornierte. Verwendung / Missbrauch auf eigenes Risiko.
quelle
n²
. Sie wissen,100001! = 2824257650254427477772164512240315763832679701040485762827423875723843380680572028502730496931545301922349718873479336571104510933085749261906300669827923360329777024436472705878118321875571799283167659071802605510878659379955675120386166847407407122463765792082065493877636247683663198828626954833262077780844919163487776145463353109634071852657157707925315037717734498612061347682956332369235999129371094504360348686870713719732258380465223614176068 ... (Warning: The output exceeded 128 KiB and was truncated.)
was Jahrtausende dauern wird, um zu laufen.Netzhaut , 58 Bytes
Probieren Sie es online aus! Erläuterung:
Wenn beide Eingänge gleich sind, löschen Sie einfach alles und fallen Sie am Ende auf Ausgang 1 durch.
In unary konvertieren.
Nach Reihenfolge sortieren.
Erweitern Sie auf einen Bereich aller Zahlen.
Löschen Sie alle zusammengesetzten Zahlen.
Wenn keine Zahlen mehr vorhanden sind, geben Sie 1 aus, andernfalls 0.
quelle
PARI / GP, 28 Bytes
Probieren Sie es online mit allen Testfällen aus!
Rückgabe
0
oder1
(übliche PARI / GP "Boolean" -Werte).Erläuterung:
v
muss ein Vektor (oder ein Spaltenvektor oder eine Liste) mit den beiden ZahlenN
undM
als Koordinaten sein. Zum Beispiel[8, 10]
. Danns
wird die "Menge" aus diesen Zahlen erstellt, die entweder ein Ein-Koordinaten-Vektor (wennN==M
) oder ein Zwei-Koordinaten-Vektor mit ansonsten sortierten Einträgen ist.Wenn dann die Anzahl
#s
der Koordinatens
nur eins ist, erhalten wir1
(wahr). Andernfallsprimes
wird ein Vektor aller Primzahlen im geschlossenen Intervall vons[1]
bis zurückgegebens[2]
. Die Negation!
davon ergibt,1
wenn der Vektor leer ist, während die Negation eines Vektors von einem oder mehreren Einträgen ungleich Null (hier eine oder mehrere Primzahlen) ergibt0
.quelle
JavaScript (ES6),
5756 ByteNimmt Eingaben in die Curry-Syntax vor
(a)(b)
. Rückgabe0
oder1
.Testfälle
Code-Snippet anzeigen
Wie?
quelle
R ,
6346 Bytes-17 von Giuseppe
Probieren Sie es online aus!
Ziemlich einfache Anwendung der Jelly-Lösung von ETHProductions . Haupt interessant Mitnehmen
istist , dass mit R Booleschen Vektorenany(x)==all(x)
entsprichtmin(x)==max(x)
.quelle
numbers
stattdessen installiertmin(x)==max(x)
dies der Überprüfung entspricht, ob alle Elementeis_prime(a:b)
gleich sind, können wir diesen letzten Trick verwenden , um ihn mit dem oder dem Paket auf 46 Byte zu reduzieren.primes
numbers
C (gcc)
153146 Bytes-7 von Jonathan Frech
Definiert eine Funktion ,
h
die in zwei Takesint
s und kehrt1
für truthy und0
für FalseyProbieren Sie es online aus!
n
ist eine Funktion, die 1 zurückgibt, wenn ihr Argument nicht prim ist.g
ist ein Makro, das sein erstes und zweites Argument auf die nächste Primzahl setzt, die kleiner als bzw. größer als das dritte Argument isth
Dies giltg
für beide Eingänge und prüft, ob die Ausgänge gleich sind.quelle
return a==c&&b==d;
kann seinreturn!(a-c|b-d);
.Gelee , 6 Bytes
Probieren Sie es online aus!
-2 danke an Dennis .
quelle
APL (Dyalog Unicode) ,
18 + 16 = 3424 BytesProbieren Sie es online aus!
Vielen Dank an Adám für 10 Bytes.
Die Linie
⎕CY'dfns'
( C OP Y ) benötigt wird , um die zu importierende DFNS ( d ynamische f unctio ns ) Sammlung, mit Default Dyalog APL installiert enthalten.Wie es funktioniert:
quelle
Python 2 ,
8786 BytesProbieren Sie es online aus!
quelle
C (gcc) ,
103 Bytes100 BytesProbieren Sie es online aus!
quelle
Haskell , 81 Bytes
Eine einfache Lösung:
Probieren Sie es online aus!
quelle
Mathematica,
392726 BytesErweitert:
Verwendungszweck:
Beiträge: -12 Bytes von Jenny_mathy , -1 Bytes von Martin Ender
quelle
Equal@@NextPrime[#,{-1,1}]&
[{N,M}]
Equal@@NextPrime[{##},{-1,1}]&
#~NextPrime~{-1,1}
.J , 15 Bytes
Wie es funktioniert:
Probieren Sie es online aus!
quelle