Виклик
Є багато чисел, які можна виразити як різницю двох квадратів, або як різницю двох кубів, або, можливо, навіть вищі потужності. Якщо говорити про квадрати, існують різні способи запису числа, скажімо 75, як різниця у 2 квадрати. Ви можете написати:
75 = (10)^2 - (5)^2
= (14)^2 - (11)^2
= (38)^2 - (37)^2
Тож давайте поговоримо про виклик. По-перше, користувач вводить число, а потім він вводить значення для n. Потрібно відобразити всі способи запису цього числа у формі aⁿ - 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 дещо заплутаний, оскільки позначає конгруентність у математиці.