ท้าทาย
มีตัวเลขมากมายที่สามารถแสดงเป็นความแตกต่างของสองสแควร์สหรือความแตกต่างของสองคิวบ์หรืออาจจะเป็นพลังที่สูงกว่า เมื่อพูดถึงสแควร์สมีวิธีการเขียนตัวเลขที่หลากหลายพูดได้ 75 ว่าเป็นความแตกต่างของสแควร์ส 2 คุณสามารถเขียน:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
ถ้าอย่างนั้นเรามาพูดถึงความท้าทาย ประการแรกผู้ใช้ป้อนตัวเลขจากนั้นเขาป้อนค่าสำหรับ n คุณต้องแสดงวิธีการทั้งหมดที่สามารถเขียนหมายเลขนั้นในรูปแบบของⁿ - bⁿ
อินพุตและเอาต์พุต
ข้อมูลที่ป้อนจะเป็นตัวเลขและค่าของ n ผลลัพธ์ของคุณจะต้องมีคู่ของ 'a' และ 'b' ทั้งหมดที่ตรงตามเงื่อนไขที่ระบุไว้ข้างต้น ตัวเลขตัวแรกในคู่ต้องมากกว่าตัวที่สอง โปรดทราบว่า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)
เกณฑ์การให้คะแนน
นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดชนะ!
==
ใน UniHaskell ค่อนข้างสับสนเนื่องจากเป็นการบ่งบอกถึงความสอดคล้องกันในวิชาคณิตศาสตร์