Reto
Hay muchos números que pueden expresarse como la diferencia de dos cuadrados, o como la diferencia de dos cubos, o tal vez incluso potencias más altas. Hablando de cuadrados, hay varias formas de escribir un número, digamos 75, como la diferencia de 2 cuadrados. Puedes escribir:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Entonces hablemos del desafío. En primer lugar, el usuario ingresa un número y luego ingresa un valor para n. Debe mostrar todas las formas en que se puede escribir ese número en forma de aⁿ - bⁿ.
Entrada y salida
La entrada será el número y el valor de n. Su salida tendrá todos esos pares de 'a' y 'b' de manera que se cumpla la condición mencionada anteriormente. El primer número del par debe ser mayor que el segundo. Tenga en cuenta que a, b, n y el número de entrada son todos enteros positivos yn> 1 .
Ejemplos
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
Tanteo
Este es el código de golf , por lo que gana el código más corto.
==
en UniHaskell es algo confuso, ya que denota congruencia en matemáticas.