Вдохновленный этим вопросом по математике.
Пусть простые множители числа, п , можно представить в виде Р (п) = 2 х 3 б х 5 гр х ... .
(Используя й в качестве символа умножения.)
Тогда число делителей п можно представить в виде D (п) = (а + 1) х (Ь + 1) х (С + 1) ... .
Таким образом, мы можем легко сказать, что число делителей 2n равно D (2n) = (a + 2) x (b + 1) x (c + 1) ... ,
число делителей 3n равно D (3n ) = (а + 1) х (Ь + 2) х (с + 1) ... ,
и так далее.
Вызов:
Напишите программу или функцию, которая использует эти свойства для вычисления n с учетом определенных входных данных делителя.
Входные данные:
Набор целых чисел, назовем их w, x, y, z со всеми следующими определениями:
- все входы больше 1 -
w, x, y, z > 1
- х и г различны -
x<>z
- х и z простые -
P(x)=x
,D(x)=2
иP(z)=z
,D(z)=2
- w - число делителей xn -
D(xn)=w
- у - число делителей zn -
D(zn)=y
Для проблемы, приведенной в связанном вопросе, может быть входной пример (28, 2, 30, 3)
. Это переводится как D(2n)=28
и D(3n)=30
, с n=864
.
Выход:
Одно целое число n , удовлетворяющее приведенным выше определениям и входным ограничениям. Если несколько чисел соответствуют определениям, выведите наименьшее. Если такое целое число невозможно, выведите значение Falsey .
Примеры:
(w, x, y, z) => output
(28, 2, 30, 3) => 864
(4, 2, 4, 5) => 3
(12, 5, 12, 23) => 12
(14, 3, 20, 7) => 0 (or some other falsey value)
(45, 13, 60, 11) => 1872
(45, 29, 60, 53) => 4176
Правила:
- Применяются стандартные правила игры в гольф и ограничения на лазейки .
- Применяются стандартные правила ввода / вывода .
- Вводимые цифры могут быть в любом порядке - укажите в своем ответе, какой порядок вы используете.
- Входные числа могут быть в любом подходящем формате: разделенные пробелом, массив, отдельные аргументы функции или аргументы командной строки и т. Д. - на ваш выбор.
- Аналогично, если вывод в STDOUT, окружающий пробел, завершающий перевод строки и т. Д. Являются необязательными.
- Разбор ввода и форматирование вывода не являются интересными особенностями этой задачи.
- В интересах вменяемой сложности и целочисленных переполнений, номер запроса n будет иметь такие ограничения, то
1 < n < 100000
есть вам не нужно беспокоиться о возможных ответах за пределами этого диапазона.
связанные с
источник
Ответы:
Желе ,
1716 байтовЭто решение грубой силы, которое пробует все возможные значения до 100 000. Попробуйте онлайн!
Неконкурентная версия
В последней версии Jelly есть исправление ошибки, которое позволяет сократить код до 15 байт .
Попробуйте онлайн!
Как это работает
источник