Даны целые положительные числа A и B , возвращает позицию р , что сводит к минимуму число простых факторов ( с учетом кратности) в результате целого числа, когда B будет вставлен в А на р .
Например, учитывая A = 1234 и B = 32 , это возможные вставки (с p -индексированным 0) и соответствующая информация об их простых множителях:
р | Результат | Основные факторы | Ω (N) / количество 0 | 321234 | [2, 3, 37, 1447] | 4 1 | 132234 | [2, 3, 22039] | 3 2 | 123234 | [2, 3, 19, 23, 47] | 5 3 | 123324 | [2, 2, 3, 43, 239] | 5 4 | 123432 | [2, 2, 2, 3, 37, 139] | 6
Вы можете видеть, что результат имеет минимальное число простых факторов, 3, когда p равно 1. Поэтому в данном конкретном случае вы должны вывести 1 .
Спекуляции
Если есть несколько позиций p, которые минимизируют результат, вы можете выбрать вывод всех или любой из них.
Вы можете выбрать 0-индексирование или 1-индексирование для p , но этот выбор должен быть последовательным.
A и B могут быть приняты как целые числа, строки или списки цифр.
Вы можете соревноваться на любом языке программирования и можете принимать и выводить данные любым стандартным методом , при этом отмечая, что эти лазейки по умолчанию запрещены. Это код-гольф, поэтому выигрывает самое короткое представление (в байтах)!
Контрольные примеры
A, B -> p (0-индексированный) / p (1-indexed) 1234, 32 -> 1/2 3456, 3 -> 4/5 378, 1824 -> 0/1 1824, 378 -> 4/5 67, 267 -> Любой или все среди: [1, 2] / [2, 3] 435, 1 -> Любой или все среди: [1, 2, 3] / [2, 3, 4] 378100, 1878980901 -> Любой или все среди: [5, 6] / [6, 7]
Для удобства вот список кортежей, представляющих каждую пару входов:
[(1234, 32), (3456, 3), (378, 1824), (1824, 378), (67, 267), (435, 1), (378100, 1878980901)]
источник
132234
вместо1
.Ответы:
Шелуха , 16 байт
Ожидается ввод в виде строк, попробуйте онлайн!
объяснение
источник
MATL , 25 байт
Входные данные представляют собой строки в обратном порядке. Выход основан на 1. Если есть ничья, выводится самая низкая позиция.
Попробуйте онлайн! Или проверьте все тестовые случаи .
объяснение
источник
Pyth,
201311 байтПопробуйте онлайн
объяснение
источник
Желе , 21 байт
Попробуйте онлайн!
-1 спасибо мистеру Xcoder .
Возвращает все возможные позиции.
источник
Japt ,
2221 байтЭто чувствовалось слишком долго, пока я писал это, но, глядя на некоторые другие решения, это на самом деле кажется несколько конкурентным. Тем не менее, вероятно, есть немного возможностей для совершенствования -
cNq)
в частности, меня это раздражает. Объяснение, чтобы следовать.Принимает первый ввод как строку, а второй как целое число или строку. Результат имеет индекс 0 и вернет первый индекс, если существует несколько решений.
Попытайся
объяснение
источник
PowerShell , 228 байт
Попробуйте онлайн!
(Кажется, что длинные предложения по игре в гольф приветствуются. Также время ожидания TIO для последнего тестового случая истекло, но алгоритм должен работать для этого случая без проблем.)
PowerShell не имеет встроенных основных факторов факторизации, поэтому этот код заимствован из моего ответа на Prime Factors Buddies . Это объявление первой строки
function
.Мы берем входные данные
$a,$b
и затем устанавливаем$p
пустую хеш-таблицу. Далее мы берем строку$b$a
, превращаем ее в одноэлементный массив с помощью оператора запятой,
и объединяем массив с помощью вещи . Материал представляет собой через петлю$a
, вставив$b
в любой точке, в конце концов массива сцепляются с$a$b
.На данный момент у нас есть массив
$b
вставленных в каждой точке$a
. Затем мы отправляем этот массив через цикл for|%{...}
. Каждая итерация, мы вводим в нашу хэш - таблицу в позиции сколько простых делителей , что конкретный элемент имеет.$i++
.count
f
$_
Наконец, мы
sort
используем хеш-таблицу на основеvalue
s, берем0
ее и выбираем ееName
(т.$i
Е. Индекс). Это осталось на конвейере и вывод неявный.источник
05AB1E , 18 байт
Попробуйте онлайн!
источник
05AB1E ,
2721 байтПопробуйте онлайн!
Возвращает самый низкий 0-индексированный р .
Спасибо @Enigma за -6 байт!
объяснение
источник
ηõ¸ì¹.sRõ¸«)øεIýÒg}Wk
.Чисто ,
165... 154 байтаПопробуйте онлайн!
источник
Python 2 ,
165146 байтПопробуйте онлайн!
источник
JavaScript (ES6), 120 байт
Принимает ввод как 2 строки. Возвращает позицию с 0 индексами.
Контрольные примеры
Показать фрагмент кода
источник
J, 60 байт
Явная диада. Принимает B справа, A слева.
0-индексированный вывод.
Может быть возможно улучшить, не используя коробки.
Объяснение:
источник
Python 3, 128 байт
0 индексированные; принимает в качестве параметров строки -6 байт благодаря Джонатану Фреху.
источник
:\n a
->:a
.Python, 122 байта
На практике это превышает максимальную глубину рекурсии по умолчанию довольно быстро.
источник