вход
Одно целое число .
Выход
Максимальное количество различных положительных целых чисел, которые имеют произведение .
Примеры
Входные данные: 1099511627776. Выходные данные: 9. Один из возможных оптимальных списков факторов: (1, 2, 4, 8, 16, 32, 64, 128, 4096).
Входные данные: 127381. Выходные данные 4. Один из возможных оптимальных списков факторов: (1, 17, 59, 127).
Связанный с этим старым вопросом .
code-golf
. Вы можете рассмотретьfastest-code
илиfastest-algorithm
для предстоящего испытания. Если вы действительно хотите, чтобы все ответы работали в течение ограниченного времени в указанном диапазоне, это должно было быть явно упомянуто. (И я бы порекомендовал меньший диапазон, чтобы онcode-golf
полностью не конфликтовал .)x=1, 2, ...
я получаю то,f(x)=1, 2, 2, 2, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 2, 3, 2, 3, 3, 3, 2, 4, 2, 3, 3, 3, 2, 4, 2, 3, 3, 3, 3, 4, 2, 3
чего не нахожу в OEIS. Достаточно ясно, что записи появятся для факторных чиселx
. Например самый маленькийx
такой, которыйf(x)=13
будет13!
. Я думаю,f
зависит только от показателей простой факторизации. Так что найтиf(13^4*19^7*29^2)
мы могли бы упростить доf(2^7*3^4*5^2)
.Ответы:
Wolfram Language (Mathematica) , 52 байта
Попробуйте онлайн!
4 байта сохранены благодаря @attinat
Вот также версия 153 байта, которая вычисляет
1099511627776
и10^15
Попробуйте онлайн!
Результат для
10^15
является 12источник
Wolfram Language (Mathematica) , 38 байт
Попробуйте онлайн!
Жадный алгоритм. Тайм-аут на TIO на больших входах, таких как
1099511627776
.источник
05AB1E , 9 байт
Очень неэффективно. Тайм-аут на TIO для чисел с большим количеством делителей.
Попробуйте онлайн!
объяснение
источник
€gZ
немного эффективнее, чемéθg
для того же bytecount.Perl 6 , 38 байт
Попробуйте онлайн!
Принимает жадный подход к выбору делителей.
источник
Javascript (ES6), 39 байт
Там, вероятно, несколько байтов, которые могут быть сохранены здесь и там. Просто использует жадный алгоритм для факторов.
источник
Желе , 9 байт
Попробуйте онлайн!
-1 байт, спасибо кому-то
-2 байта благодаря ErikTheOutgolfer
источник
ÆE×8‘½’:2S‘
(это работает с мощностью раздела «формула» OEIS для A003056). Отказ от ответственности: это может быть неправильно, но это работает на тестовых случаях.ÆD
, это не значит, что будет создано больше разделов, как это, просто это займет гораздо больше времениJapt
-h
, 13 байтПопытайся
источник
Брахилог , 8 байт
Попробуйте онлайн!
(Наивный подход,
{~×≠l}ᶠ⌉
генерирует бесконечное количество решений с дополнительными единицами, прежде чем удалять их≠
, и, таким образом, фактически не завершается. Однако это не проблема, поскольку он для того же количества байтов!)Принимает ввод через входную переменную и выводит через выходную переменную. Заголовок на TIO содержит копию большей части кода, чтобы показать вам, что такое список факторов, но без него это прекрасно работает. Поскольку
⊇
сначала создаются большие подсписки, этот предикат, по сути, делает то же самое, что и большинство других ответов, но без явного генерирования и фильтрации полного набора мощностей факторов благодаря обратной проверке.источник
Scala , 77 байт
Попробуйте онлайн!
источник
Gaia ,
109 байтПопробуйте онлайн!
Следует тому же «алгоритму», что и в другом месте - отфильтруйте набор мощности делителя для самого длинного с произведением, равным числу, и верните его длину.
источник
Моллюск , 15 байт
Ссылка TIO скоро появится (когда Деннис тянет)
В основном это порт решения @ Emigna 05AB1E.
объяснение
источник
C # (интерактивный компилятор Visual C #) , 54 байта
Использует тот же подход, что и ответы @ vrugtehagel и @ JoKing.
Попробуйте онлайн!
источник
Рубин , 34 байта
Очевидно, тайм-аут этого огромного числа, но в конечном итоге истечет, если будет достаточно времени на другой машине.
Попробуйте онлайн!
источник