Фон
Число n
можно охарактеризовать как B
сквозное, если все основные факторы n
строго превышают B
.
Соревнование
Учитывая два положительных целых числа B
и k
, выведите первые k
B
числа.
Примеры
Позвольте f(B, k)
быть функция, которая возвращает набор, содержащий числа первого по k
B
.
> f(1, 10)
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
> f(2, 5)
1, 3, 5, 7, 9
> f(10, 14)
1, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59
code-golf
number-theory
primes
factoring
Аддисон Крамп
источник
источник
B
?n
в простые числа. Если все эти простые числа больше чемB
, n -B
через.Ответы:
Haskell ,
5344 байтаПопробуйте онлайн!
Спасибо H.PWiz за -9 байт!
источник
(>b)
-часть внутри понимания (что не работает), а не наоборот. Благодарность!Python 3 ,
80, 75 байтПопробуйте онлайн!
Спасибо shooqie за сохранение 5 байтов.
Это предполагает, что k-ое B-грубое число никогда не будет превышатьB ∗ k , что я не знаю, как доказать, но кажется довольно безопасным предположением (и я не могу найти никаких контрпримеров).
Альтернативное решение:
Python 2 , 78 байт
Попробуйте онлайн!
Это решение не делает вышеуказанное решение. И гораздо эффективнее.
источник
lambda B,k:[i for i in range(1,-~B*k)if all(i%j for j in range(2,B+1))][:k]
?Желе , 7 байт
Попробуйте онлайн!
источник
Perl 6 ,
3532 байта-3 байта благодаря nwellnof!
Попробуйте онлайн!
Блок анонимного кода, который принимает два целых числа и возвращает список целых чисел.
объяснение
источник
all
?all
проверяет, верны ли все элементы в списке. Я добавлю объяснение всему этому в ближайшее время[&]
вместоall
.all
больше не используется таким образом, поэтому я должен обновить свой ответ.all
создает соединение значений в диапазоне2..b
, и любые операции, выполняемые на соединении, выполняются одновременно для всех значений. Когда он оценивается в булевом контекстеgrep
, это сводится к тому, являются ли все значения в Соединении правдивыми, то есть ненулевымиШелуха ,
98 байтПопробуйте онлайн!
источник
Древесный уголь , 33 байта
Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Ввод
B
иk
.Установите
z
на 0.Повторяйте, пока у нас не будет
k
значений.Приращение
z
.Разделите
z
все числа от2
доB
и посмотрите, равен ли остаток нулю.Если нет, то нажмите
z
на предопределенный пустой список.Приведите список к строке и неявно выведите его.
источник
JavaScript (ES6), 68 байт
Принимает вход как
(b)(k)
.Попробуйте онлайн!
комментарии
источник
Желе , 10 байт
Попробуйте онлайн!
Как это устроено
источник
JavaScript (Node.js) , 68 байт
Попробуйте онлайн!
источник
APL (NARS), 52 символа, 104 байта
Выше, кажется, строки после 'r ← afw; i' имеют имена 1 2 3; test:
источник
05AB1E , 9 байт
Попробуйте онлайн или проверьте все контрольные примеры .
Объяснение:
источник