Если положительное целое число имеет (строго) меньше простых множителей (без учета кратностей), чем его преемник и предшественник, мы назовем его числом с низким коэффициентом .
Другими словами, и ω ( N ) < ω ( N + 1 ) , где ω ( N ) представляет собой количество уникальных простых множителей N .
задача
Вы можете выбрать один из следующих форматов ввода / вывода:
- Возьмет целое число и вывести N - й фактор плохого числа. Если вы выберете этот, N может быть 0 или 1 проиндексирован.
- Возьмите положительное целое число и выведите первые числа с плохим коэффициентом N.
- Печатайте последовательность бесконечно.
Вы можете принимать и выводить данные любым стандартным методом , на любом языке программирования , при этом отмечая, что эти лазейки по умолчанию запрещены. Это код гольф, поэтому выигрывает самая короткая подача, которая соответствует правилам.
Я не буду включать отдельные тестовые случаи, потому что методы соревнования разные, но вы можете сослаться на первые 100 терминов этой последовательности, то есть OEIS A101934 :
11, 13, 19, 23, 25, 27, 29, 37, 41, 43, 47, 49, 53, 59, 61, 64, 67, 71, 73, 79, 81, 83, 89, 97, 101, 103, 107, 109, 113, 121, 125, 131, 137, 139, 149, 151, 155, 157, 163, 167, 169, 173, 179, 181, 191, 193, 197, 199, 211, 221, 223, 227, 229, 233, 239, 241, 243, 251, 259, 263, 265, 269, 271, 277, 281, 283, 289, 293, 307, 309, 311, 313, 317, 331, 337, 341, 343, 347, 349, 353, 359, 361, 365, 367, 371, 373, 379, 383, 389, 397, 401, 407, 409, 419, 421, 431, 433, 439, 441, 443
Например, встречается в этой последовательности, потому что ω ( 25 ) = 1 (5), ω ( 26 ) = 2 (2 и 13) и ω ( 24 ) = 2 (2 и 3), поэтому ω ( 25 ) < ω ( 24 ) и ω ( 25 ) < ω ( 26 ) .
n =
перед каждым значением?Ответы:
Брахилог , 21 байт
Попробуйте онлайн!
Печатает бесконечно.
объяснение
источник
Желе ,
1312 байтПечать первой п фактор бедных чисел.
Попробуйте онлайн!
Как это устроено
источник
Python 2 ,
123119 байтПопробуйте онлайн!
источник
MATL ,
262422 байтаПечатает последовательность бесконечно.
Попробуйте онлайн!
объяснение
источник
Шелуха , 22 байта
Печатает последовательность бесконечно, попробуйте ее онлайн или просмотрите первую букву N !
В качестве альтернативы
§oΛ>←t
можно использовать вместоΠtSM<←
.объяснение
источник
Pyth , 14 байт
Попробуй это здесь!
Первоначально это было предложение относительно ответа Допаппа , но они сказали, чтобы я отправил это отдельно.
Как это устроено?
источник
Haskell,
10586 байтСпасибо @Wheat Wizard, @Bruce Forte и @Laikoni за сохранение 19 байт.
[n|n<-[2..],d n<d(n-1),d n<d(n+1)] d x=[1|n<-[1..x],x`rem`n<1,all((>0).rem n)[2..n-1]]
источник
rem
==0
и/=0
могут быть соотнесены с<1
и>0
соответственно.let
определении, такd
как вспомогательная функция в порядке (см. Руководство по правилам игры в гольф ). Такжеsum
может быть опущено, сравнение работает одинаково для списков. 86 байт: попробуйте онлайн!Октава ,
878379 байтСпасибо @Cows Quack за сохранение байта и благодаря @Luis Mendo за сохранение
трехшести байтов!Печатает последовательность бесконечно.
Попробуйте онлайн!
73 байта с ведением
n =
перед каждым значением:Попробуйте онлайн!
источник
f
может статьf=@(n)length(unique(factor(n)))
на один байт меньше.05AB1E ,
1413 байтВыводит число с низким коэффициентом (1-индексированное)
Попробуйте онлайн!
объяснение
источник
µ
, так что, думаю, я просто укажу на свою альтернативу -N<N>Ÿ
могу заменить3LN+Í
, если это поможет.®XŸN+
же работает. Или0®X)N+
в этом случаеÀ
не будет необходимости. К сожалению, все они заканчиваются одним и тем же количеством байтов.Pyth,
3025 байтЭто мой первый настоящий гольф Pyth, поэтому любые комментарии очень ценятся.
Большое спасибо Xcoder!
объяснение
TIO .
источник
.f!-.ml{Pb}tZh
(печатает первые n) (.f
извлекает первые n значений, которые удовлетворяют условию,[1,2,3,...]
и использует переменнуюZ
,}tZh
генерирует целочисленный диапазон[Z - 1 ... Z + 1]
,.m
возвращает список элементов с минимальным значением функции (сb
),l{Pb
получает количество различных делителей,-
отбрасываетZ
из списка,!
применяет логическое отрицание)h
is+1
,t
is-1
, whileK
это переменная, которая присваивается без=
. Например,K4
назначаетK
на4
. Вы можете получить к нему доступ, используяK
.JavaScript (ES6), 94 байта
Возвращает число с плохим коэффициентом N, индексированное 0.
Попробуйте онлайн!
Как?
Сначала мы определим функцию P (), которая возвращает число уникальных простых множителей данного целого числа.
Код переноса теперь читается как:
источник
Джапт ,
292726 байтНе совсем доволен этим, но по крайней мере это лучше, чем моя первая попытка, которая была более 40 байтов!
Выводится
N
число в последовательности, индексируется 1.Попытайся
объяснение
Неявный ввод целого числа
U
.Вернуть первое целое число,
X
которое возвращает true, когда прошло через следующую функцию.Назначьте массив
[-1,0,1]
дляX
.Передайте каждый элемент этого массива через функцию, которая сначала добавляет текущее значение
X
.Получите длину (
Ê
) уникальных (â
) простых факторов (k
) результата.Поверните полученный массив на один вправо.
Pop (
o
) последний элемент изX
и проверьте, все ли остальные элементы больше его.Если так, уменьшите
U
и проверьте, равен ли он 0.источник
Python 3 , 97 байт
В теории это печатает последовательность бесконечно. На практике в
g
конечном итоге превышает рекурсивный лимит.Попробуйте онлайн!
источник
C (gcc) , 126 байт
Попробуйте онлайн!
источник
Чисто ,
130123117 байтПриравнивается к бесконечному числу членов последовательности. Поскольку это все вложенные представления, он не может воспользоваться преимуществами сокращения графов и поэтому довольно медленный, даже для такого плохого алгоритма.
Попробуйте онлайн!
источник
APL NARS, 124 байта, 62 символа
Он должен возвращать ответ до 1E4, затем возвращать -1 ошибка; Предположим, 9.10. аргумент получил правильные числа; тестовое задание:
источник