OEIS: A167171
Um número denso é um número que possui exatamente o mesmo número de divisores primos que os divisores não primos (incluindo 1 e ele próprio como divisores). Equivalentemente, é um primo ou um produto de dois primos distintos. Os primeiros 100 números densos são:
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 um número inteiro não negativo n
, saída dense(n)
. n
pode ser 0 ou 1.
Implementação de referência (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
?Respostas:
Geléia , 9 bytes
Lê do STDIN e usa indexação baseada em 1. Experimente online!
Como funciona
fonte
Na verdade , 12 bytes
Todos os créditos para Dennis por seu algoritmo .
Experimente online!
fonte
05AB1E,
1211 bytesIndexado 1
Experimente online
fonte
Braquilog , 17 bytes
Experimente online!
Predicado 0 (predicado principal)
Predicado 1 (predicado auxiliar)
fonte
R, 93 bytes
Tem uma tendência a lançar um aviso. Não é realmente um problema. Permitir o aviso economiza 5 bytes.
Ungolfed
fonte
+=
operador para salvar 2 bytes?+=
oua++
. Às vezes, pode haver maneiras mais curtas (principalmente na estrutura de loop), mas não conheço uma aqui.Python, 79 bytes
Usa indexação baseada em 1. Teste em Ideone .
fonte
PHP, 118 bytes
Experimente online!
fonte
Axioma, 102 bytes
ungolf e resultado
fonte