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!
źródło
==
w UniHaskell jest nieco mylący, ponieważ oznacza zgodność w matematyce.05AB1E , 9 bajtów
Bardzo nieefektywny w przypadku większych wartości wejściowych.
Wypróbuj online!
Wyjaśnienie
źródło
MATL , 11 bajtów
Wypróbuj online! Lub sprawdź wszystkie przypadki testowe .
Wyjaśnienie
źródło
APL (Dyalog) , 21 bajtów
Wypróbuj online!
Lewy argument to
n
.źródło
Python 2 , 65 bajtów
Wypróbuj online!
źródło
Galaretka , 10 bajtów
Pełny program biorąc
i
, in
które wypisuje pary[b,a]
z pustym wyjściem, gdy ich nie ma.Wypróbuj online!
W jaki sposób?
źródło
JavaScript (ES7), 64 bajty
Funkcja rekurencyjna pobierająca dane wejściowe w składni curry
(n)(p)
. Zwraca rozdzieloną spacjami listę liczb całkowitych lub pusty ciąg, jeśli nie ma rozwiązania. Używa tego samego algorytmu, co odpowiedź Python użytkownika user202729 .Lub 60 bajtów z enkapsulowanymi tablicami zakończonymi 0:
To by dało wynik
[ 9, 7, [ 6, 2, 0 ] ]
dla f (32) (2) .Przypadki testowe
Pokaż fragment kodu
źródło
Pyth , 14 bajtów
Wypróbuj tutaj! , Alternatywa!
źródło
Python 3 , 71 bajtów
Dzięki Mr.Xcoder za uratowanie niektórych bajtów!
Wypróbuj online!
Python 3 , 69 bajtów
Wypróbuj online!
Używanie brutalnej siły x ^ 2 totalniehumana faktycznie oszczędza bajty.
źródło
Oktawa , 80 bajtów
Wypróbuj online!
źródło
Perl 6 , 45 bajtów
Wypróbuj online!
źródło