Inspiriert von diesem Numberphile-Eintrag
Hintergrund
Die Würfel Abstand Nummern einer ganzen Zahl n sind hier als die Menge der ganzen Zahlen definiert, die X³ Abstand für eine gegebene x . Für ein einfaches Beispiel mit n=100
und x=2
die Würfel Abstand Zahlen sind {92,108}
.
Dies kann durch einfaches Variieren von x zu einer größeren Menge erweitert werden . Mit x ∈ {1,2,3,4}
und n=100
haben wir die Ergebnismenge {36,73,92,99,101,108,127,164}
.
Definieren wir CD (n, x) als die Menge aller ganzen Zahlen n ± z³
mit z ∈ {1,2,3,...,x}
.
Jetzt können wir uns auf einige der besonderen Eigenschaften dieser Würfelabstandszahlen konzentrieren . Von den vielen speziellen Eigenschaften , die Zahlen haben können, sind die beiden Eigenschaften , die wir hier interessiert sind primality und Primteilern .
Beachten Sie für die obige Beispiel- CD (100,4) , dass 73, 101, 127
alle Primzahlen sind. Wenn wir diese aus dem Set entfernen, bleibt uns nichts anderes übrig {36,92,99,108,164}
. Alle Primteiler dieser Zahlen sind (in der richtigen Reihenfolge). Dies {2,2,3,3,2,2,23,3,3,11,2,2,3,3,3,2,2,41}
bedeutet, dass wir 5 verschiedene Primteiler haben {2,3,23,11,41}
. Wir können daher definieren, dass CD (100,4) den Rabenwert 1 von hat 5
.
Die Herausforderung hierbei besteht darin, eine Funktion oder ein Programm in den wenigsten Bytes zu schreiben, die bzw. das die Ravenität einer bestimmten Eingabe ausgibt .
Eingang
- Zwei positive ganze Zahlen
n
undx
in jedem geeigneten Format.
Ausgabe
- Eine einzelne Ganzzahl, die die Ravenität der beiden eingegebenen Zahlen beschreibt, wenn sie mit CD (n, x) berechnet wird .
Regeln
- Die Eingabe / Ausgabe kann über jede geeignete Methode erfolgen .
- Es gelten die üblichen Lückenbeschränkungen.
- Zur Vereinfachung der Berechnung können Sie davon ausgehen, dass die Eingabedaten so sind, dass CD (n, x) nur positive Zahlen im Satz enthält (dh keine CD (n, x) hat jemals negative Zahlen oder Null).
- Die Funktion oder das Programm sollte in der Lage sein, Eingabenummern so zu verarbeiten, dass sie
n + x³
in den nativen Ganzzahldatentyp Ihrer Sprache passen. Beispielsweise sind für einen 32-Bit-Integer-Typ mit Vorzeichen alle Eingabenummern mitn + x³ < 2147483648
möglich.
Beispiele
n,x - output
2,1 - 0 (since CD(2,1)={1,3}, distinct prime divisors={}, ravenity=0)
5,1 - 2
100,4 - 5
720,6 - 11
Fußnoten
1 - So genannt, weil wir nicht an der Kardinalität des Sets interessiert sind , sondern an einem anderen Vogeltyp. Da es sich um "gemeinsame" Teiler handelt, habe ich mich für den gemeinsamen Raben entschieden .
100,4
5? Die Würfel Abstand Nummern , die gesetzt werden36,164
, und die prime Faktoren dieses Satzes sind2,3,41
(da die Faktoren , die gesetzt sind ,{2, 3, 4, 6, 9, 12, 18, 36}
und{2, 4, 41, 82, 164}
jeweils). Daher sollte die Ausgabe 3 und nicht 5 sein.100,4
ist das Beispiel, das das OP im Abschnitt Hintergrund erklärt. Ihr Fehler scheint zu sein, dass Sie alle in Betracht ziehen sollten1..x
, also[1,2,3,4]
für diesen Fall.Antworten:
Gelee, 16 Bytes
Nimmt x und n als Befehlszeilenargumente in dieser Reihenfolge. Probieren Sie es online!
Wie es funktioniert
quelle
Pyth -
211918 BytesIch frage mich, ob es einen Trick gibt.
Test Suite .
quelle
Julia, 107 Bytes
Dies ist eine Funktion, die zwei Ganzzahlen akzeptiert und eine Ganzzahl zurückgibt.
Ungolfed:
quelle
05AB1E ,
20 bis19 BytesCode:
Eingabe in Form
x
,n
. Verwendet die CP-1252- Codierung.Probieren Sie es online!
quelle
MATL , 21 Bytes
Eingegeben wird
x
,n
durch eine neue Zeile getrennt werden .Probieren Sie es online!
Erläuterung
quelle
J, 30 Bytes
Dies ist ein dyadisches Verb, das wie folgt verwendet wird:
Probieren Sie es hier aus.
Erläuterung
quelle
@:+(
warum so traurig, cooler Typ?Python 3.5,
218198 Bytes:( Danke an @Blue, dass du mir 20 Bytes gespart hast.)
Eine schöne einzeilige Lambda-Funktion, auch wenn sie etwas lang sein kann. Da ich Python benutzte, musste ich meine eigene Methode finden, um die Komposite für den ersten Schritt und dann die Hauptteiler für den letzten Schritt zu finden. Es war also nicht sehr einfach, und dies war der kürzeste Weg für mich . könnte es schaffen. Trotzdem tut es, was es braucht, und ich bin stolz darauf. :) Allerdings sind alle Tipps zum Golfen ein bisschen mehr willkommen.
quelle
PARI / GP , 79 Bytes
Hier ist meine ursprüngliche, unkomplizierte Implementierung. Die optimierte Version oben kombiniert die beiden Vektoren zu einem einzelnen, etwas komplizierteren Vektor.
quelle
f
(wief=(n,x)->...
) zuweisen , können Sie sie mit testenf(100,4)
. Alternativ können Sie es in einer Zeile mit aufrufen((n,x)->...)(100,4)
.Ruby, 138 Bytes
Es war ein Wortspiel y Herausforderung. :-)
quelle
Ruby,
132120114 BytesMir ist klar, dass diese Lösung noch viel Golf erfordert. Alle Golftipps sind willkommen.
Ungolfing:
quelle
Python 3.5 -
177175159 BytesIrgendwelche Golftipps willkommen :)
Ungolfed:
quelle
Wolfram-Sprache (Mathematica) , 90 Bytes
Probieren Sie es online!
nicht golfen: der Code wird meistens von rechts nach links gelesen,
quelle