Tantangan
Ada banyak angka yang dapat dinyatakan sebagai perbedaan dua kotak, atau sebagai perbedaan dua kubus, atau bahkan kekuatan yang lebih tinggi. Berbicara tentang kotak, ada berbagai cara menulis angka, katakanlah 75, sebagai perbedaan 2 kotak. Kamu bisa menulis:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Jadi mari kita bicara tentang tantangannya. Pertama, pengguna memasukkan angka dan kemudian ia memasukkan nilai untuk n. Anda perlu menampilkan semua cara di mana angka itu dapat ditulis dalam bentuk aⁿ - bⁿ.
Masukan dan keluaran
Input akan berupa angka dan nilai n. Output Anda akan memiliki semua pasangan 'a' dan 'b' sedemikian rupa sehingga kondisi yang disebutkan di atas terpenuhi. Angka pertama dalam pasangan harus lebih besar dari yang kedua. Harap dicatat bahwa a, b, n dan nomor input semuanya bilangan bulat positif, dan n> 1 .
Contohnya
50, 2 -> (none)
32, 2 -> (9,7), (6, 2)
7, 3 -> (2,1)
665, 6 -> (3, 2)
81, 4 -> (none)
Mencetak gol
Ini adalah kode-golf , jadi kode terpendek menang!
==
dalam UniHaskell agak membingungkan, karena menunjukkan kesesuaian dalam matematika.