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!
==
in UniHaskell etwas verwirrend, da es die Kongruenz in der Mathematik anzeigt.