Zwei Zahlen gelten als einvernehmlich, wenn die richtige Teilersumme der ersten Zahl mit der zweiten Zahl übereinstimmt, die richtige Teilersumme der zweiten Zahl gleich der ersten Zahl ist und die erste und die zweite Zahl nicht gleich sind.
Definieren S(x)
wir die richtige Divisorsumme von x
. 220 und 284 sind einvernehmlich, weil S(220) = 284
und S(284) = 200
.
Es ist nicht überraschend, dass Ihre Aufgabe darin besteht, festzustellen, ob zwei eingegebene Zahlen einvernehmlich sind oder nicht. Die Eingaben sind positive ganze Zahlen, und Sie können zwei unterschiedliche, konsistente Werte für gütlich oder nicht einvernehmlich ausgeben.
Dies ist die OEIS-Sequenz A259180
Dies ist ein Code-Golf, also gewinnt der kürzeste Code.
Testfälle
input, input => output
220, 284 => 1
52, 100 => 0
10744, 10856 => 1
174292, 2345 => 0
100, 117 => 0
6, 11 => 0
495, 495 => 0
6, 6 => 0
code-golf
math
number
decision-problem
Caird Coinheringaahing
quelle
quelle
Antworten:
Gelee , 5 Bytes
Eine monadische Verbindung, die eine Liste von zwei ganzen Zahlen enthält, die 1 zurückgibt, wenn es sich um ein Paar gütlicher Zahlen handelt, andernfalls 0.
Probieren Sie es online aus!
Wie?
quelle
;wÆṣỊ
undœ¿ÆṣḊ
auch 5 Bytes punkten.ÆṣQU⁼
- vielleicht gibt es irgendwo eine hinterhältige 4 ...Python 2 ,
656366 Bytes-2 Bytes dank Mr. Xcoder
Probieren Sie es online aus!
quelle
Python 2,
7167 Bytes-4 Bytes dank xnor
+9 Bytes dank Caird Coinheringaahing
teilweise inspiriert von [dieser Antwort]
quelle
def f(x): return
in Ihre Bytezahl aufnehmen.map
mitlambda
Ausdruck ist fast immer länger als ein Listenverständnis.Brain-Flak , 178 Bytes
Probieren Sie es online aus!
quelle
Haskell , 53 Bytes
-2 Bytes dank BMO. -1 Byte dank Ørjan Johansen.
Probieren Sie es online aus!
Ungolfed mit UniHaskell und
-XUnicodeSyntax
quelle
a/=b
innerhalb des Listenverständnisses bewegen .J,
51 28 2724 Bytes-Viele Bytes dank @cole
-1 mehr Byte dank @cole
Probieren Sie es online aus!
quelle
-:[:|.(1#.i.*0=i.|])”0
oder etwas ähnliches verwenden. Die Divisorsumme (Verb ganz rechts) stammt aus dem Kommentar von Mile zu unserer Divisorsummenfrage. Bearbeiten: mit einem anderen Anführungszeichen, da ich auf dem Handy bin.~:/*]
.~.-:
... (Übereinstimmung mit dedpulizierten Eingaben) tun können , was ich aus der Jelly-Antwort gestohlen habe.-:
Übereinstimmung in Ihrem Code entfernt, die Anzahl der Bytes aktualisiert und einen TIO-Link hinzugefügt. Hoffe das ist OK von dir. Fühlen Sie sich frei, ein Rollback durchzuführen, wenn dies nicht der Fall ist (aber die vorherige Lösung hatte einen Domänenfehler, den Sie beheben möchten).>:@#.~/.~&.q:-:~:*+/
JavaScript (ES6), 53 Byte
Nimmt Eingaben in die Curry-Syntax vor
(a)(b)
. Rückgabe0
oder1
.Demo
Code-Snippet anzeigen
Wie?
Wir verwenden die Funktion g , um die Summe der richtigen Teiler einer gegebenen ganzen Zahl zu erhalten.
Wir berechnen zuerst g (a) und vergleichen es mit b . Wenn g (a) = b ist , berechnen wir g (b) und vergleichen es mit a . Ansonsten berechnen wir g (1) , was 0 ergibt und möglicherweise nicht gleich a sein kann .
Wir prüfen zusätzlich, ob a nicht gleich b ist .
quelle
Python 3, 84 Bytes
Einfache Lösung. d summiert Teiler (n% i <1 ergibt 1, wenn i n teilt). a ^ b ist ungleich Null, wenn a! = b. Die LHS der Ungleichung ist somit 0, wenn die Zahlen nicht gütlich sind, und ansonsten> 0.
quelle
Ruby ,
64 60 5958 BytesProbieren Sie es online aus!
quelle
R , 67 Bytes
Probieren Sie es online aus!
kehrt
TRUE
für gütlich zurück,FALSE
für nicht.quelle
Perl 6 , 53 Bytes
Probieren Sie es online aus!
Nimmt die Eingabe als Liste von zwei Zahlen an.
quelle
PowerShell ,
8796 ByteProbieren Sie es online aus!
Nimmt Eingaben vor
$a,$b
. Definiert einefilter
(hier äquivalent zu einer Funktion), die Eingaben entgegennimmt$n
. Im Inneren konstruieren wir einen Bereich von1
bis$n-1
, ziehen diejenigen heraus, die Teiler sind,-join
sie zusammen mit+
und senden diese anInvoke-Expression
(ähnlich wieeval
).Schließlich überprüfen wir außerhalb des Filters einfach, ob die Divisorsumme eines Eingangs gleich dem anderen ist und umgekehrt (und die Eingabevalidierung, um sicherzustellen, dass sie nicht gleich sind). Dieser boolesche Wert bleibt in der Pipeline und die Ausgabe ist implizit.
quelle
Pyth, 12 Bytes
Nimmt die Eingabe als Liste auf.
Probieren Sie es online aus
Erläuterung
quelle
05AB1E ,
87 BytesProbieren Sie es online aus!
quelle
üQ_sÑOüQ&
sicher lol.Stapel, 127 Bytes
1
Wird ausgegeben, wenn die Parameter einvernehmlich sind. Subtrahiert alle Faktoren von der Summe der Eingabenummern für jede Eingabenummer. Wenn beide Ergebnisse Null sind, sind die Zahlen einvernehmlich.quelle
APL (Dyalog Unicode) ,
45 38 44 36 3520 BytesProbieren Sie es online aus!
Infix Dfn, fest für den Fall gleicher Eingänge.
Danke @Uriel für 8 Bytes; @cole für 1 Byte; @ Adám für 15 Bytes.
Wie?
@ Adám hat mir auch mit einer half
2220 Byte stillschweigende Funktion, die den Dfn äquivalent ist:Probieren Sie es online aus!
Wie?
quelle
each
es verwenden, anstatt Code zu duplizieren{(⍺≠⍵)∧⍵⍺≡+/¨¯1↓¨(0=⍺⍵|⍨⍳¨⍺⍵)/¨⍳¨⍺⍵}
. Ich habe die Logik noch nicht durchlaufenRot , 117 Bytes
Probieren Sie es online aus!
quelle
Java (OpenJDK 9) , 87 Bytes
Probieren Sie es online aus!
quelle
SNOBOL4 (CSNOBOL4) ,
153146 BytesProbieren Sie es online aus!
Definiert eine Funktion
A
, die die Freundlichkeit zweier Zahlen berechnet, wobei1
für freundschaftlich und die leere Zeichenfolge für nicht zurückgegeben wird. Der Algorithmus ist der gleiche wie meine vorherige Antwort, daher lasse ich die alte Erklärung unten.quelle
Pyth , 13 Bytes
+4 Bytes, um zu überprüfen, ob die Werte unterschiedlich sind. Ich denke, das sollte nicht Teil der Herausforderung sein ...
Kann mit ziemlicher Sicherheit viel Golf gespielt werden
Probieren Sie es online aus!
quelle
APL + WIN,
4954414035 ByteUmgeschrieben, um gleiche Ganzzahl-Eingaben abzulehnen
Fordert zur Bildschirmeingabe eines Vektors der beiden Ganzzahlen auf.
quelle
APL NARS, 38 Bytes, 18 Zeichen
11π⍵ finde die Summe der Teiler von ⍵ in 1..⍵; Beachten Sie, dass die Frage (11π⍵) -⍵ und in APLsm
die Prüfung
quelle
Japt ,
71210 BytesNimmt die Eingabe als Array von 2 Zahlen auf.
Versuch es
[6,11]
.quelle
Forth (gforth) ,
9186 BytesProbieren Sie es online aus!
Viertens (gforth) Keine Einheimischen, 94 Bytes
Eine "Forthy" -Version, die keine lokalen Variablen verwendet
Probieren Sie es online aus!
quelle
Brachylog , 9 Bytes
Probieren Sie es online aus!
Nimmt die Eingabe als Liste und gibt sie durch Erfolg oder Misserfolg aus.
quelle
Forth (gforth) , 80 Bytes
Refactored Reffus Lösung .
Probieren Sie es online aus!
Wie es funktioniert
quelle