OEIS: A167171
Angka padat adalah angka yang memiliki persis pembagi utama sebanyak pembagi non-prime (termasuk 1 dan itu sendiri sebagai pembagi). Secara ekuivalen, itu adalah prima atau produk dari dua bilangan prima yang berbeda. 100 angka padat pertama adalah:
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
Diberikan bilangan bulat negatif n
, keluaran dense(n)
. n
dapat diindeks 0 atau diindeks 1.
Implementasi referensi (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
?Jawaban:
Jelly , 9 byte
Membaca dari STDIN dan menggunakan pengindeksan berbasis 1. Cobalah online!
Bagaimana itu bekerja
sumber
Sebenarnya , 12 byte
Semua kredit untuk Dennis untuk algoritme-nya .
Cobalah online!
sumber
05AB1E,
1211 byte1-diindeks
Cobalah online
sumber
Brachylog , 17 byte
Cobalah online!
Predikat 0 (predikat utama)
Predikat 1 (predikat bantu)
sumber
R, 93 Bytes
Ia memiliki kecenderungan untuk memberikan peringatan. Ini bukan masalah. Membiarkan peringatan itu menyelamatkan saya 5 byte.
Tidak disatukan
sumber
+=
operator untuk menghemat 2 byte?+=
ataua++
. Kadang-kadang ada cara yang lebih pendek (mengambil keuntungan dari struktur loop kebanyakan), tetapi saya tidak tahu satu di sini.Python, 79 byte
Menggunakan pengindeksan berbasis 1. Uji di Ideone .
sumber
PHP, 118 Bytes
Cobalah online!
sumber
Aksioma, 102 byte
ungolf dan hasilnya
sumber