(Случайно вдохновленный /mathpro//q/339890 )
(Связанный: 1 , 2 )
Учитывая входной список различных простых чисел (например, [2, 5, 7]
) и целое число n
, выведите все натуральные числа, строго меньшие, чем те, n
которые содержат только эти простые числа в качестве делителей. Для ввода [2, 5, 7]
и n=15
это означает вывод [2, 4, 5, 7, 8, 10, 14]
.
Дальнейшие примеры
[list] n | output
[2, 5, 7] 15 | [2, 4, 5, 7, 8, 10, 14]
[2, 5, 7] 14 | [2, 4, 5, 7, 8, 10]
[2] 3 | [2]
[2] 9 | [2, 4, 8]
[103, 101, 97] 10000 | [97, 101, 103, 9409, 9797, 9991]
[97, 101, 103] 104 | [97, 101, 103]
Правила и разъяснения
- Входной список гарантированно не пустой, но может быть только одним элементом
- Вы можете предположить, что входной список предварительно отсортирован любым удобным способом
n
всегда будет больше, чем самый большой элемент в списке ввода- Так как, например,
2**0 = 1
вы можете при желании включить1
в свой список вывода - Ввод и вывод может быть дан любым удобным способом
- Вы можете распечатать результат в STDOUT или вернуть его как результат функции
- Либо полная программа или функция приемлемы
- Если применимо, вы можете предположить, что целые числа ввода / вывода вписываются в родной
int
диапазон вашего языка - Стандартные лазейки запрещены
- Это код-гольф, поэтому применяются все обычные правила игры в гольф, и выигрывает самый короткий код (в байтах)
1
вывод.
[2, 3, 7]
вы не можете использовать 5
.