Jika bilangan bulat positif memiliki (secara ketat) lebih sedikit faktor prima (tanpa menghitung multiplisitas) daripada penggantinya dan pendahulunya, kami akan menyebutnya bilangan faktor-miskin .
Dengan kata lain, dan ω ( N ) < ω ( N + 1 ) , di mana ω ( N ) adalah sejumlah faktor prima yang unik dari N .
Tugas
Anda dapat memilih di antara format I / O berikut:
- Ambil bilangan bulat dan hasilkan angka miskin faktor ke - N . Jika Anda memilih yang ini, N bisa 0 atau 1 diindeks.
- Ambil bilangan bulat positif dan hasilkan angka pertama faktor-miskin N.
- Cetak urutan tanpa batas.
Anda dapat mengambil input dan memberikan output melalui metode standar apa pun , dalam bahasa pemrograman apa pun , sambil memperhatikan bahwa celah ini dilarang secara default. Ini golf kode, jadi pengiriman terpendek yang mematuhi aturan menang.
Saya tidak akan menyertakan kotak uji terpisah, karena metode bersaingnya berbeda, tetapi Anda dapat merujuk ke 100 syarat pertama dari urutan ini, yaitu OEIS A101934 :
11, 13, 19, 23, 25, 27, 29, 37, 41, 43, 47, 49, 53, 59, 61, 64, 67, 71, 73, 79, 81, 83, 89, 97, 101, 103, 107, 109, 113, 121, 125, 131, 137, 139, 149, 151, 155, 157, 163, 167, 169, 173, 179, 181, 191, 193, 197, 199, 211, 221, 223, 227, 229, 233, 239, 241, 243, 251, 259, 263, 265, 269, 271, 277, 281, 283, 289, 293, 307, 309, 311, 313, 317, 331, 337, 341, 343, 347, 349, 353, 359, 361, 365, 367, 371, 373, 379, 383, 389, 397, 401, 407, 409, 419, 421, 431, 433, 439, 441, 443
Sebagai contoh, terjadi dalam urutan ini karena ω ( 25 ) = 1 (5), ω ( 26 ) = 2 (2 dan 13) dan ω ( 24 ) = 2 (2 dan 3), jadi ω ( 25 ) < ω ( 24 ) dan ω ( 25 ) < ω ( 26 ) .
n =
sebelum setiap nilai?Jawaban:
Brachylog , 21 byte
Cobalah online!
Mencetak tanpa batas.
Penjelasan
sumber
Jelly ,
1312 byteMencetak angka pertama n faktor-buruk.
Cobalah online!
Bagaimana itu bekerja
sumber
Python 2 ,
123119 byteCobalah online!
sumber
MATL ,
262422 byteMencetak urutan tanpa batas.
Cobalah online!
Penjelasan
sumber
Sekam , 22 byte
Mencetak urutan tanpa batas, coba online atau lihat N pertama !
Atau
§oΛ>←t
bisa digunakan sebagai penggantiΠtSM<←
.Penjelasan
sumber
Pyth , 14 byte
Coba di sini!
Awalnya itu adalah saran tentang jawaban Dopapp , tetapi mereka mengatakan kepada saya untuk mempostingnya secara terpisah.
Bagaimana itu bekerja?
sumber
Haskell,
10586 byteTerima kasih kepada @Wheat Wizard, @Bruce Forte, dan @Laikoni karena telah menghemat 19 byte.
[n|n<-[2..],d n<d(n-1),d n<d(n+1)] d x=[1|n<-[1..x],x`rem`n<1,all((>0).rem n)[2..n-1]]
sumber
rem
==0
dan/=0
dapat dipindahkan dengan<1
dan>0
masing - masing.let
, mendefinisikand
sebagai fungsi tambahan baik-baik saja (lihat panduan aturan golf ). Jugasum
dapat dihilangkan, perbandingan berfungsi sama pada daftar. 86 byte: Cobalah secara online!Oktaf ,
87,8379 byteTerima kasih kepada @Cows dukun untuk menyimpan satu byte dan terima kasih kepada @Luis Mendo karena telah menyimpan
tigaenam byte!Mencetak urutan tanpa batas.
Cobalah online!
73 byte dengan memimpin
n =
sebelum setiap nilai:Cobalah online!
sumber
f
dapat menjadif=@(n)length(unique(factor(n)))
kurang dari satu byte.05AB1E ,
1413 byteMenghasilkan angka ke-miskin-faktor (1-diindeks)
Cobalah online!
Penjelasan
sumber
µ
, jadi saya kira saya hanya akan menunjukkan alternatif saya -N<N>Ÿ
dapat menggantikan3LN+Í
, jika itu membantu.®XŸN+
juga berfungsi. Atau0®X)N+
dalam halÀ
mana tidak diperlukan. Sayangnya mereka semua berakhir pada jumlah byte yang sama.Pyth,
3025 byteIni adalah pertama saya nyata Pyth golf, jadi komentar sangat dihargai.
Terima kasih banyak kepada Xcoder!
Penjelasan
TIO .
sumber
.f!-.ml{Pb}tZh
(mencetak n pertama) (.f
mengambil nilai n pertama yang memenuhi kondisi lebih[1,2,3,...]
dan menggunakan variabelZ
,}tZh
menghasilkan rentang integer[Z - 1 ... Z + 1]
,.m
mengembalikan daftar elemen dengan nilai fungsi minimal (denganb
),l{Pb
mendapat hitungan pembagi yang berbeda,-
BuangZ
dari daftar,!
berlaku negasi logis)h
is+1
,t
is-1
, whileK
adalah variabel yang ditugaskan tanpa=
. Misalnya,K4
ditugaskanK
untuk4
. Anda kemudian dapat mengaksesnya menggunakanK
.JavaScript (ES6), 94 byte
Mengembalikan angka N-faktor-buruk, 0-diindeks.
Cobalah online!
Bagaimana?
Kami pertama-tama mendefinisikan fungsi P () yang mengembalikan jumlah faktor prima unik bilangan bulat yang diberikan.
Kode pembungkus sekarang terbaca sebagai:
sumber
Japt ,
292726 byteTidak sepenuhnya senang dengan ini, tetapi setidaknya lebih baik daripada upaya pertama saya yang lebih dari 40 byte!
Menghasilkan angka
N
ke-1 dalam urutan, 1-diindeks.Cobalah
Penjelasan
Input bilangan bulat implisit
U
.Kembalikan integer pertama
X
yang mengembalikan true ketika melewati fungsi berikut.Tetapkan array
[-1,0,1]
keX
.Lewati setiap elemen array itu melalui fungsi yang pertama menambahkan nilai saat ini dari
X
.Dapatkan panjang (
Ê
) faktor unik (â
) prima (k
) dari hasilnya.Putar array yang dihasilkan ke kanan.
Pop (
o
) elemen terakhir dariX
dan periksa apakah semua elemen yang tersisa lebih besar dari itu.Jika demikian, kurangi
U
dan periksa apakah sama dengan 0.sumber
Python 3 , 97 byte
Secara teori, ini mencetak urutan tanpa batas. Dalam praktiknya,
g
akhirnya melebihi batas rekursi.Cobalah online!
sumber
C (gcc) , 126 byte
Cobalah online!
sumber
Bersih ,
130123117 byteSetara dengan jumlah syarat urutan yang tak terbatas. Karena semuanya bersarang, ia tidak dapat memanfaatkan pengurangan grafik dengan sangat baik sehingga sangat lambat, bahkan untuk algoritma yang buruk.
Cobalah online!
sumber
APL NARS, 124 byte, 62 karakter
Seharusnya mengembalikan jawaban hingga 1E4, lalu mengembalikan -1 kesalahan; anggaplah 9..10 dokumen memiliki angka yang tepat; uji:
sumber