OEIS: A167171
Un número denso es un número que tiene exactamente tantos divisores primos como divisores no primos (incluyendo 1 y sí mismo como divisores). De manera equivalente, es un primo o un producto de dos primos distintos. Los primeros 100 números densos son:
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
Dado un entero no negativo n
, salida dense(n)
. n
puede estar indexado a 0 o indexado a 1.
Implementación de referencia (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
?Respuestas:
Jalea , 9 bytes
Lee desde STDIN y usa indexación basada en 1. Pruébalo en línea!
Cómo funciona
fuente
En realidad , 12 bytes
Todos los créditos a Dennis por su algoritmo .
Pruébalo en línea!
fuente
05AB1E,
1211 bytes1 indexado
Pruébalo en línea
fuente
Brachylog , 17 bytes
Pruébalo en línea!
Predicado 0 (predicado principal)
Predicado 1 (predicado auxiliar)
fuente
R, 93 bytes
Tiene tendencia a lanzar una advertencia. No es realmente un problema. Permitir la advertencia me ahorra 5 bytes.
Sin golf
fuente
+=
operador para guardar 2 bytes?+=
oa++
. A veces puede haber formas más cortas (aprovechando principalmente la estructura de bucle), pero no conozco una aquí.Python, 79 bytes
Utiliza indexación basada en 1. Pruébelo en Ideone .
fuente
PHP, 118 bytes
Pruébalo en línea!
fuente
Axioma, 102 bytes
ungolf y resultado
fuente