Sfida
Esistono molti numeri che possono essere espressi come la differenza di due quadrati, o come la differenza di due cubi, o forse potenze anche più elevate. Parlando di quadrati, ci sono vari modi di scrivere un numero, diciamo 75, come la differenza di 2 quadrati. Tu puoi scrivere:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Quindi parliamo della sfida. Innanzitutto, l'utente inserisce un numero e quindi immette un valore per n. Devi visualizzare tutti i modi in cui quel numero può essere scritto sotto forma di aⁿ - bⁿ.
Ingresso e uscita
L'input sarà il numero e il valore di n. L'output deve avere tutte queste coppie di "a" e "b" in modo tale da soddisfare la condizione sopra indicata. Il primo numero nella coppia deve essere maggiore del secondo. Si noti che a, b, n e il numero di input sono tutti numeri interi positivi e n> 1 .
Esempi
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
punteggio
Questo è code-golf , quindi vince il codice più corto!
==
in UniHaskell è alquanto confuso, in quanto denota congruenza in matematica.