Некоторое время назад у нас была главная проблема факторизации , но этой проблеме уже почти шесть лет, и она едва соответствует нашим текущим требованиям, поэтому я считаю, что пришло время для новой.
Вызов
Напишите программу или функцию, которая принимает в качестве входных данных целое число больше 1 и выводит или возвращает список основных факторов.
правила
- Ввод и вывод могут быть предоставлены любым стандартным методом и в любом стандартном формате.
- Повторяющиеся факторы должны быть включены в вывод.
- Вывод может быть в любом порядке.
- Ввод будет не менее 2 или более 2 31 - 1.
- Встроенные модули разрешены, но рекомендуется использовать не встроенное решение.
Контрольные примеры
2 -> 2
3 -> 3
4 -> 2, 2
6 -> 2, 3
8 -> 2, 2, 2
12 -> 2, 2, 3
255 -> 3, 5, 17
256 -> 2, 2, 2, 2, 2, 2, 2, 2
1001 -> 7, 11, 13
223092870 -> 2, 3, 5, 7, 11, 13, 17, 19, 23
2147483646 -> 2, 3, 3, 7, 11, 31, 151, 331
2147483647 -> 2147483647
счет
Это код-гольф , поэтому выигрывает самый короткий код в байтах.
Ответы:
Pyth , 1 байт
Мне нравятся шансы Пайта в этом испытании.
источник
Python 2 , 55 байт
Попробуйте онлайн!
источник
Python 2, 53 байта
Пытается каждый потенциальный делитель
i
по очереди. Еслиi
это делитель, предваряет его и перезапускаетn/i
. Иначе, пробует следующий по величине делитель. Поскольку делители проверяются в порядке возрастания, найдены только простые.Как программа, для 55 байтов:
источник
Mathematica,
3830 байтСпасибо @MartinEnder за 8 байтов!
источник
FactorInteger[#][[All, 1]]&
? 26 байтовЖеле , 2 байта
Попробуйте онлайн!
источник
Haskell , 48 байтов
Попробуйте онлайн! Пример использования:
(2%) 1001
доходность[7,11,13]
.источник
JavaScript (ES6), 44 байта
Ужасно неэффективно из-за того, что он перебирает от 2 до каждого простого фактора, включая последний. Вы можете значительно сократить сложность времени за счет 5 байтов:
источник
Cubix ,
3732 байтаПопробуйте онлайн! или смотреть это в действии .
источник
На самом деле , 6 байтов
Попробуйте онлайн!
Объяснение:
источник
o
сейчас, верно?J, 2 байта
Тело должно быть не менее 30 символов.источник
MATL , 2 байта
Попробуйте онлайн!
Обязательный «скучный встроенный ответ».
источник
Japt, 2 байта
Встроенный
k
используется на входеU
. Также относится к стране.Проверьте это онлайн!
источник
глухой , 3 байта
Этот язык довольно молодой и еще не совсем готов к чему-то важному, но он может выполнять простую факторизацию:
Это будет ждать ввода пользователя, а затем выведет список основных факторов.
источник
MATLAB, 6 байтов
Я думаю, что это не требует каких-либо объяснений.
источник
Bash + coreutils, 19 байт
Попробуйте онлайн!
источник
factor|sed s/.*://
. Такжеfactor|cut -d: -f2
(илиfactor|cut -d\ -f2
для соответствия вашему текущему выводу) та же длина байта, но она будет работать быстрее и потреблять меньше памяти.factor|cut -d\ -f2-
убрать начальное пространство, которое на один байт длиннее.Пакетный, 96 байт
источник
Пайк, 1 байт
Попробуй это здесь!
Основные факторы встроены.
источник
Hexagony , 58 байт
Пока не закончил игру в гольф, но @MartinEnder должен все равно это уничтожить
Распечатывает факторы, разделенные пробелом, с завершающим пробелом
Golfed:
Выложенная из:
Объяснение будет позже.
источник
05AB1E , 1 байт
Попробуйте онлайн!
источник
CJam, 2 байта
cjam.aditsu.net / ...
Это функция. Мартин, кажется, я был сонный.
источник
C 92 байта
Безголовая версия:
источник
Japt , 1 байт (не конкурирующий)
Попробуйте онлайн!
источник
PHP , 51 байт
Попробуйте онлайн!
источник
C (gcc) , 51 байт
Попробуйте онлайн!
источник
Perl 6 ,
7764 байтаПопытайся
Попробуйте (Примечание: у него недостаточно времени, чтобы закончить)
Гораздо более производительная версия немного длиннее - 100 байт.
Попытайся
Расширен: (64-байтовая версия)
источник
VB.NET, 86 байт
Сидел ли это с некоторыми программами Project Euler. Убраны оптимизации в интересах краткости, и это результат. Естественно, VB очень многословен, поэтому он довольно длинный. Я не считаю ведущие пробелы. Его можно опустить, но с ним легче читать.
Это берет целое число в качестве параметра и печатает главные факторы с запятой после. В конце есть запятая.
источник
Perl 6 , 51 байт
Рекурсивное решение:
источник
Java (OpenJDK) , 259 байт
Попробуйте онлайн!
источник
Рубин, 61 байт
Самая короткая встроенная версия, о которой я только мог подумать.
источник
Рубин , 48 байтов
Попробуйте онлайн!
Немного опоздал на вечеринку, но ... почему бы и нет?
источник