Herausforderung
Es gibt viele Zahlen, die sich als Differenz zweier Quadrate oder als Differenz zweier Würfel oder vielleicht sogar höherer Potenzen ausdrücken lassen. Apropos Quadrate: Es gibt verschiedene Möglichkeiten, eine Zahl, z. B. 75, als Differenz von zwei Quadraten zu schreiben. Du kannst schreiben:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Sprechen wir also über die Herausforderung. Der Benutzer gibt zuerst eine Zahl und dann einen Wert für n ein. Sie müssen alle Möglichkeiten anzeigen, wie diese Nummer in Form von aⁿ - bⁿ geschrieben werden kann.
Ein- und Ausgang
Die Eingabe ist die Zahl und der Wert von n. Ihre Ausgabe muss alle diese Paare von 'a' und 'b' enthalten, sodass die oben angegebene Bedingung erfüllt ist. Die erste Zahl im Paar muss größer als die zweite sein. Bitte beachten Sie, dass a, b, n und die eingegebene Zahl positive ganze Zahlen sind und n> 1 .
Beispiele
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
Wertung
Das ist Code-Golf , also gewinnt der kürzeste Code!
quelle
==
in UniHaskell etwas verwirrend, da es die Kongruenz in der Mathematik anzeigt.05AB1E , 9 Bytes
Sehr ineffizient für größere Eingabewerte.
Probieren Sie es online!
Erläuterung
quelle
MATL , 11 Bytes
Probieren Sie es online! Oder überprüfen Sie alle Testfälle .
Erläuterung
quelle
APL (Dyalog) , 21 Bytes
Probieren Sie es online!
Linkes Argument ist
n
.quelle
Python 2 , 65 Bytes
Probieren Sie es online!
quelle
Gelee , 10 Bytes
Eine vollständige Programmaufnahme
i
, bein
der die Paare[b,a]
mit einer leeren Ausgabe ausgedruckt werden, wenn keine vorhanden sind.Probieren Sie es online!
Wie?
quelle
JavaScript (ES7), 64 Byte
Eine rekursive Funktion, die Eingaben in der aktuellen Syntax vornimmt
(n)(p)
. Gibt eine durch Leerzeichen getrennte Liste von Ganzzahlpaaren oder eine leere Zeichenfolge zurück, wenn keine Lösung vorhanden ist. Verwendet denselben Algorithmus wie die Python-Antwort von user202729 .Oder 60 Bytes mit 0-terminierten, gekapselten Arrays:
Dies würde
[ 9, 7, [ 6, 2, 0 ] ]
für f (32) (2) ausgegeben .Testfälle
Code-Snippet anzeigen
quelle
Pyth , 14 Bytes
Probieren Sie es hier aus! , Alternative!
quelle
Python 3 , 71 Bytes
Danke Mr.Xcoder für das Speichern einiger Bytes!
Probieren Sie es online!
Python 3 , 69 Bytes
Probieren Sie es online!
Verwenden Sie die x ^ 2-Brute-Force-Methode von totallyhuman, um tatsächlich Bytes zu sparen.
quelle
Oktave , 80 Bytes
Probieren Sie es online!
quelle
Perl 6 , 45 Bytes
Probieren Sie es online!
quelle