도전
두 제곱의 차이 또는 두 큐브의 차이 또는 더 높은 거듭 제곱으로 표현할 수있는 숫자가 많이 있습니다. 정사각형에 대해 말하면 2 정사각형의 차이로 숫자를 쓰는 여러 가지 방법이 있습니다 (75). 당신은 쓸 수 있습니다:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
그럼 도전에 대해 이야기합시다. 먼저, 사용자는 숫자를 입력 한 다음 n에 대한 값을 입력합니다. 해당 번호가 aⁿ-bⁿ 형식으로 작성 될 수있는 모든 방법을 표시해야합니다.
입력과 출력
입력 값은 n의 숫자와 값입니다. 출력은 위에 언급 된 조건이 충족되도록 모든 'a'와 'b'쌍을 가져야합니다. 쌍의 첫 번째 숫자는 두 번째 숫자보다 커야합니다. 있습니다 A, B, N 및 상기 입력 번호가 모두 양의 정수이고,> 1 N .
예
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
채점
이것은 code-golf 이므로 가장 짧은 코드가 승리합니다!
==
UniHaskell 의 등호 는 수학에서의 합동을 나타 내기 때문에 다소 혼동됩니다.