Desafio
Existem muitos números que podem ser expressos como a diferença de dois quadrados, ou a diferença de dois cubos, ou talvez potências ainda mais altas. Falando em quadrados, existem várias maneiras de escrever um número, digamos 75, como a diferença de 2 quadrados. Você pode escrever:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Então, vamos falar sobre o desafio. Primeiro, o usuário digita um número e, em seguida, ele insere um valor para n. Você precisa exibir todas as maneiras pelas quais esse número pode ser escrito na forma de aⁿ - bⁿ.
Entrada e saída
A entrada será o número e o valor de n. Sua saída deve ter todos esses pares de 'a' e 'b', de modo que a condição acima indicada seja atendida. O primeiro número no par deve ser maior que o segundo. Observe que a, b, n e o número de entrada são números inteiros positivos e n> 1 .
Exemplos
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
Pontuação
Isso é código-golfe , então o código mais curto vence!
==
no UniHaskell é um pouco confuso, pois denota congruência na matemática.