チャレンジ
2つの正方形の差、2つの立方体の差、またはさらに高いべき乗として表現できる数値が多数あります。正方形について言えば、2つの正方形の差として、たとえば75のような数を書くさまざまな方法があります。あなたは書ける:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
それでは、挑戦について話しましょう。まず、ユーザーが数値を入力し、次にnの値を入力します。その数をaⁿ-bⁿの形式で書くことができるすべての方法を表示する必要があります。
入出力
入力は、nの数と値になります。出力には、上記の条件が満たされるように、「a」と「b」のすべてのペアが含まれます。ペアの最初の数値は、2番目の数値よりも大きくする必要があります。a、b、nおよび入力番号はすべて正の整数であり、n> 1であることに注意してください。
例
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
得点
これはcode-golfなので、最短のコードが優先されます!
==
UniHaskellの等号は、数学の一致を示すため、やや混乱します。