OEIS: A167171
Густое число этого число , которое имеет ровно столько же, как простые делители , не простые делители (включая 1 и сам по себе , как делители). Эквивалентно, это либо простое число, либо произведение двух различных простых чисел. Первые 100 плотных чисел:
2, 3, 5, 6, 7, 10, 11, 13, 14, 15, 17, 19, 21, 22, 23, 26, 29, 31, 33, 34, 35, 37, 38, 39, 41, 43, 46, 47, 51, 53, 55, 57, 58, 59, 61, 62, 65, 67, 69, 71, 73, 74, 77, 79, 82, 83, 85, 86, 87, 89, 91, 93, 94, 95, 97, 101, 103, 106, 107, 109, 111, 113, 115, 118, 119, 122, 123, 127, 129, 131, 133, 134, 137, 139, 141, 142, 143, 145, 146, 149, 151, 155, 157, 158, 159, 161, 163, 166, 167, 173, 177, 178, 179, 181, 183, 185, 187, 191, 193, 194
Учитывая неотрицательное целое число n
, выведите dense(n)
. n
может быть 0-индексирован или 1-индексирован.
Эталонная реализация (Sage)
import itertools
def dense_numbers():
n = 1
while True:
prime_divisors = [x for x in divisors(n) if x.is_prime()]
non_prime_divisors = [x for x in divisors(n) if not x.is_prime()]
if len(prime_divisors) == len(non_prime_divisors):
yield n
n += 1
N = 20
print itertools.islice(dense_numbers(), N, N+1).next()
n
?Ответы:
Желе , 9 байт
Читает из STDIN и использует индексирование на основе 1. Попробуйте онлайн!
Как это устроено
источник
На самом деле , 12 байтов
Все кредиты Денису за его алгоритм .
Попробуйте онлайн!
источник
05AB1E,
1211 байт1-индексированных
Попробуйте онлайн
источник
Брахилог , 17 байт
Попробуйте онлайн!
Предикат 0 (основной предикат)
Предикат 1 (вспомогательный предикат)
источник
R, 93 байта
У этого есть тенденция бросить предупреждение. Это не проблема. Разрешение на предупреждение экономит мне 5 байтов.
Ungolfed
источник
+=
оператор для сохранения 2 байтов?+=
илиa++
. Иногда могут быть более короткие пути (в основном с использованием структуры петель), но я не знаю одного здесь.Python, 79 байт
Использует индексирование на основе 1. Проверьте это на Ideone .
источник
PHP, 118 байт
Попробуйте онлайн!
источник
Аксиома, 102 байта
разгул и результат
источник