OEIS: A167171
Liczba gęsty to numer, który ma dokładnie tyle prime dzielniki jak drugorzędnych dzielników (w tym 1 i samą siebie jako dzielników). Równolegle jest to albo liczba pierwsza, albo iloczyn dwóch różnych liczb pierwszych. Pierwsze 100 gęstych liczb to:
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
Biorąc pod uwagę nieujemną liczbę całkowitą n
, wyjście dense(n)
. n
może być 0-indeksowany lub 1-indeksowany.
Referencyjna implementacja (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
?Odpowiedzi:
Galaretka , 9 bajtów
Czyta ze STDIN i wykorzystuje indeksowanie 1. Wypróbuj online!
Jak to działa
źródło
Właściwie 12 bajtów
Wszystkie podziękowania dla Dennisa za jego algorytm .
Wypróbuj online!
źródło
05AB1E,
1211 bajtów1-indeksowany
Wypróbuj online
źródło
Brachylog , 17 bajtów
Wypróbuj online!
Predykat 0 (główny predykat)
Predykat 1 (predykat pomocniczy)
źródło
R, 93 bajtów
Ma tendencję do rzucania ostrzeżenia. To naprawdę nie jest problem. Zezwolenie na ostrzeżenie oszczędza mi 5 bajtów.
Nie golfił
źródło
+=
operatora do zapisania 2 bajtów?+=
luba++
. Czasami mogą istnieć krótsze sposoby (głównie wykorzystanie struktury pętli), ale nie znam tutaj żadnej.Python, 79 bajtów
Wykorzystuje indeksowanie 1. Przetestuj na Ideone .
źródło
PHP, 118 bajtów
Wypróbuj online!
źródło
Aksjomat, 102 bajty
golf i wynik
źródło