Вызов
Есть много чисел, которые могут быть выражены как разность двух квадратов, или как разность двух кубов, или, возможно, даже более высоких степеней. Говоря о квадратах, есть различные способы написать число, скажем, 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 несколько сбивает с толку, поскольку он обозначает соответствие в математике.05AB1E , 9 байтов
Очень неэффективно для больших входных значений.
Попробуйте онлайн!
объяснение
источник
MATL , 11 байт
Попробуйте онлайн! Или проверьте все тестовые случаи .
объяснение
источник
APL (Дьялог) , 21 байт
Попробуйте онлайн!
Левый аргумент есть
n
.источник
Python 2 , 65 байт
Попробуйте онлайн!
источник
Желе , 10 байт
Полная программа
i
,n
которая распечатывает пары[b,a]
с пустым выводом, когда их нет.Попробуйте онлайн!
Как?
источник
JavaScript (ES7), 64 байта
Рекурсивная функция, принимающая ввод в синтаксисе карри
(n)(p)
. Возвращает разделенный пробелами список пар целых чисел или пустую строку, если решения не существует. Использует тот же алгоритм, что и пользовательский ответ Python пользователя 202729 .Или 60 байтов с 0-концевыми инкапсулированными массивами:
Это выведет
[ 9, 7, [ 6, 2, 0 ] ]
для f (32) (2) .Контрольные примеры
Показать фрагмент кода
источник
Pyth , 14 байт
Попробуй это здесь! , Альтернатива!
источник
Python 3 , 71 байт
Спасибо Mr.Xcoder за сохранение некоторых байтов!
Попробуйте онлайн!
Python 3 , 69 байт
Попробуйте онлайн!
Использование подхода полностью нечеловеческой грубой силы экономит байты.
источник
Октава , 80 байт
Попробуйте онлайн!
источник
Perl 6 , 45 байт
Попробуйте онлайн!
источник