Berikut urutan menarik yang ditemukan oleh Paul Loomis, seorang ahli matematika di Universitas Bloomsburg. Dari halamannya di urutan ini:
Definisikan
f(n) = f(n-1) + (the product of the nonzero digits of f(n-1))
f(0) = x
, dengan x
bilangan bulat positif apa pun, yang ditulis dalam basis 10.
Jadi, dimulai dengan f(0)=1
, Anda mendapatkan urutan berikut
1, 2, 4, 8, 16, 22, 26, 38, 62, 74, 102, 104, ...
Sejauh ini standar. Properti menarik ikut bermain ketika Anda mengambil bilangan bulat lainnya sebagai titik awal, akhirnya urutan menyatu menjadi titik di sepanjang x=1
urutan di atas . Misalnya, mulai dengan x=3
hasil
3, 6, 12, 14, 18, 26, 38, 62, 74, 102, ...
Berikut adalah beberapa urutan lainnya, masing-masing ditampilkan hanya sampai mencapai 102
:
5, 10, 11, 12, 14, 18, 26, 38, 62, 74, 102, ...
7, 14, 18, 26, 38, 62, 74, 102, ...
9, 18, 26, 38, 62, 74, 102, ...
13, 16, 22, 26, 38, 62, 74, 102, ...
15, 20, 22, 26, 38, 62, 74, 102, ...
17, 24, 32, 38, 62, 74, 102, ...
19, 28, 44, 60, 66, 102, ...
Dia menduga, dan secara empiris membuktikan x=1,000,000
, bahwa properti ini (yaitu, bahwa semua nomor input menyatu dengan urutan yang sama) berlaku.
Tantangan
Diberikan integer input positif 0 < x < 1,000,000
, output angka di mana f(x)
urutan konvergen ke f(1)
urutan. Misalnya, untuk x=5
, ini akan menjadi 26
, karena itu adalah angka pertama yang sama untuk kedua urutan.
x output
1 1
5 26
19 102
63 150056
Aturan
- Jika berlaku, Anda dapat mengasumsikan bahwa input / output akan sesuai dengan tipe Integer asli bahasa Anda.
- Input dan output dapat diberikan dengan metode apa pun yang mudah .
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
sumber
Jelly ,
1814 byteInput adalah array tunggal.
Cobalah online!
Bagaimana itu bekerja
sumber
Python 2 ,
1119593 byteMenggunakan unpacking in
replace(*'01')
seperti pada @Rod answer-18 bytes berkat @Lynn
Cobalah online!
sumber
while cmp(*l)
juga bisa!Haskell , 65 byte
Cobalah online!
sumber
Python 2 , 78 byte
Cobalah online!
sumber
Sekam , 13 byte
Mengambil input sebagai daftar tunggal.
Cobalah online!
Penjelasan
sumber
Python 3 ,
126125 byteCobalah online!
Ambil input sebagai string
sumber
Java (JDK 10) , 99 byte
Cobalah online!
Sebagian besar merupakan port iteratif dari jawaban JavaScript Arnauld , jadi ikutilah dia!
sumber
Jelly , 23 byte
Cobalah online!
sumber
J , 50 byte
definisi fungsi gaya diam-diam
jika argumen (katakanlah 63) disisipkan ke dalam ekspresi REPL itu bisa menjadi 45 misalnya
,&1
tambahkan 1 untuk menghasilkan urutan pencarian serta urutan argumen^:(<453)"0
iterates masing-masing sampai 1mio tercapai dalam urutan 1+ [: */@(*#]) (#~10)&#:
garpu menambah kait yang melakukan produk digit(e.~ # ])/
menggunakan item berulang jika ada untuk mendapatkan persimpangan daftar{.
hanya mengembalikan nilai umum pertamaCobalah online!
sumber
R ,
11086 byteTIO
versi sebelumnya 110:
TIO
sumber