Thử thách
Có nhiều con số có thể được biểu thị bằng sự khác biệt của hai hình vuông, hoặc là sự khác biệt của hai hình khối, hoặc thậm chí có thể có sức mạnh cao hơn. Nói về hình vuông, có nhiều cách viết một số, ví dụ 75, như sự khác biệt của 2 hình vuông. Bạn có thể viết:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Vậy hãy nói về thử thách. Đầu tiên, người dùng nhập một số và sau đó anh ta nhập một giá trị cho n. Bạn cần hiển thị tất cả các cách mà số đó có thể được viết dưới dạng aⁿ - bⁿ.
Đầu vào và đầu ra
Đầu vào sẽ là số và giá trị của n. Đầu ra của bạn sẽ có tất cả các cặp 'a' và 'b' như vậy để đáp ứng điều kiện nêu trên. Số đầu tiên trong cặp phải lớn hơn số thứ hai. Xin lưu ý rằng a, b, n và số đầu vào đều là các số nguyên dương và n> 1 .
Ví dụ
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
Chấm điểm
Đây là môn đánh gôn , vì vậy đoạn mã ngắn nhất sẽ thắng!
==
trong UniHaskell có phần khó hiểu, vì nó biểu thị sự phù hợp trong toán học.