Dua nomor MU pertama adalah 2 dan 3. Setiap nomor MU lainnya adalah nomor terkecil yang belum muncul yang dapat dinyatakan sebagai produk dari dua nomor MU yang berbeda sebelumnya dalam satu cara.
Inilah 10 yang pertama
2, 3, 6, 12, 18, 24, 48, 54, 96, 162
Tugas
Diberi angka positif, hitung dan hasilkan angka MU ke- n .
Ini adalah kompetisi kode-golf sehingga Anda harus berusaha membuat kode sumber sekecil mungkin.
Jawaban:
Pyth,
2221 byteCobalah online. Suite uji.
Diindeks 0.
Penjelasan
sumber
@
tanda pada baris terakhir adalah sejajar. Saya tidak dapat membuat edit yang disarankan, karena ini adalah perubahan 2 karakter.Haskell,
8077 byteCobalah online!
Bagaimana itu bekerja
sumber
Jelly , 22 byte
Tautan monadik, 1-diindeks.
Cobalah online!
Bagaimana?
sumber
R ,
1271181111081051009890 byte8 byte terima kasih kepada Giuseppe.
Cobalah online!
sumber
<
memiliki prioritas lebih rendah daripada+
jadi saya tidak tahu apa yang+g%in%r<3
sedang dilakukan, dan ketika saya melakukan itu, Anda bermain golf di dua bagian yang akan saya sarankan ... +1n=scan()
bukannya definisi fungsi untuk membaca dari stdin; itu akan membuat Anda di bawah 1000
CJam (32 byte)
Demo online dengan pengindeksan 0.
Saya tidak yakin ada banyak yang harus dilakukan di luar terjemahan sepele dari spec dengan satu pengecualian: dengan memulai dengan daftar
[0 1 2 3]
(bukannya[2, 3]
) saya menyimpan satu byte segera pada inisialisasi dan dua lainnya dengan dapat melakukan0=|
(menambahkan hanya elemen baru karena frekuensinya sudah1
dan sudah ada dalam daftar), tetapi jangan memperkenalkan elemen yang salah karena untuk setiapx
dalam daftar0*x
dan1*x
sudah ada dalam daftar.sumber
Python 2 ,
127118 byteCobalah online!
sumber
Mathematica, 154 byte
modifikasi sederhana dari kode yang ditemukan di tautan oeis
sumber
PHP , 130 byte
Diindeks 0
Cobalah online!
Diperluas
PHP , 159 byte
Diindeks 0
Cobalah online!
PHP , 161 byte
Diindeks 0
Cobalah online!
sumber
Mathematica, 140 byte
sumber
MATL , 25 byte
Cobalah online!
Penjelasan
sumber
Perl 6 , 96 byte
Cobalah online!
2, 3, { ... } ... *
adalah urutan tak terbatas di mana setiap elemen dimulai dengan yang ketiga dihitung oleh blok kode yang dibatasi oleh tanda kurung. Karena blok kode mengambil argumennya melalui@_
array slurpy , ia menerima seluruh urutan saat ini dalam array itu.@_.combinations(2)
adalah urutan semua kombinasi 2 elemen dari@_
..classify({ [*] $_ })
mengklasifikasikan setiap 2-tupel berdasarkan produknya, menghasilkan hash di mana produk adalah kuncinya dan nilainya adalah daftar 2-tupel yang memiliki produk tersebut..grep(*.value == 1)
memilih pasangan nilai kunci dari hash di mana nilai (yaitu, daftar pasangan yang memiliki kunci itu sebagai produk) memiliki ukuran 1.».key
hanya memilih kunci dari setiap pasangan. Ini adalah daftar produk yang muncul hanya dari satu kombinasi faktor dari urutan saat ini..sort
mengurutkan produk secara numerik.first * ∉ @_, ...
menemukan yang pertama dari produk-produk yang belum muncul dalam urutan.sumber
JavaScript (ES6),
119118117 byteFungsi rekursif yang mengambil indeks berbasis 0.
Bagaimana?
Pada setiap iterasi dari f () , kita menggunakan istilah terakhir m dari urutan dan array awalnya kosong b untuk mengidentifikasi istilah berikutnya. Untuk setiap produk d> m dari dua nomor MU yang berbeda sebelumnya, kami melakukan:
dan kemudian menjaga nilai minimum b .
Ungkapan di atas dievaluasi sebagai berikut:
Ini menjamin bahwa produk yang dapat diekspresikan dalam lebih dari satu cara tidak akan pernah dipilih.
Diformat dan dikomentari
Demo
Tampilkan cuplikan kode
sumber
Haskell ,
117115113 byteCobalah online!
sumber
n x=(*)<$>x<*>1:x
Python
32 ,167139136133123121120118 byteCobalah online!
Terima kasih kepada @ Mr.Xcoder dan @LeakyNun untuk peningkatan!
sumber
p.count(q)==1
menjadip.count(q)>0
valid, karena kode itulah yang memastikan kondisi tantangan "persis satu arah".p.count(q)-~(q in a)<=3
setara denganp.count(q)+(q in a)<3