Wyzwanie
Istnieje wiele liczb, które można wyrazić jako różnicę dwóch kwadratów lub jako różnicę dwóch sześcianów, a może nawet wyższych mocy. Mówiąc o kwadratach, istnieją różne sposoby wpisywania liczby, powiedzmy 75, jako różnicy 2 kwadratów. Możesz pisać:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Porozmawiajmy więc o wyzwaniu. Najpierw użytkownik wprowadza liczbę, a następnie wprowadza wartość n. Musisz wyświetlić wszystkie sposoby wpisywania tej liczby w postaci aⁿ - bⁿ.
Wejście i wyjście
Dane wejściowe będą liczbą i wartością n. Twój wynik powinien zawierać wszystkie takie pary „a” i „b”, tak aby spełniony był wyżej określony warunek. Pierwszy numer w parze musi być większy niż drugi. Należy pamiętać, że a, b, n i liczba wejściowa są dodatnimi liczbami całkowitymi, a n> 1 .
Przykłady
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
Punktacja
To jest golf golfowy , więc wygrywa najkrótszy kod!
==
w UniHaskell jest nieco mylący, ponieważ oznacza zgodność w matematyce.