Urutan Kuznetsov
(I made the name up, don't bother with Wikipedia or Google)
Diberi nomor apa pun n > 0, mari kita rwakili kebalikan dari angka tersebut n. Ulangi sampai hasil akhir adalah nol, dengan meneruskan hasil setiap iterasi kembali ke fungsi menggunakan rekursi atau metodologi pilihan Anda dengan melakukan operasi di bawah ini:
- Jika
r > nuntuk iterasi hasilnya adalahr % n. - Jika
n > runtuk iterasi hasilnya adalahn % r. - Jika
n % r = 0ataur % n = 0, Anda mengakhiri iterasi.
Ambil hasil antara dari setiap eksekusi dan simpan dalam array untuk jawaban akhir. Nomor awal nbukan bagian dari urutan, juga bukan 0; contoh-contohnya harus membuat segalanya sedikit lebih jelas.
Mari kita telusuri contoh di mana n=32452345.
54325423 % 32452345 = 21873078 # r > n, uses r % n
87037812 % 21873078 = 21418578 # r > n, uses r % n
87581412 % 21418578 = 1907100 # r > n, uses r % n
1907100 % 17091 = 9999 # n > r, uses n % r
9999 % 9999 = 0 # r % n = n % r = 0, terminated
Result: [21873078, 21418578, 1907100, 9999]
Contoh lain n=12345678:
87654321 % 12345678 = 1234575 # r > n, uses r % n
5754321 % 1234575 = 816021 # r > n, uses r % n
816021 % 120618 = 92313 # n > r, uses n % r
92313 % 31329 = 29655 # n > r, uses n % r
55692 % 29655 = 26037 # r > n, uses r % n
73062 % 26037 = 20988 # r > n, uses r % n
88902 % 20988 = 4950 # r > n, uses r % n
4950 % 594 = 198 # n > r, uses n % r
891 % 198 = 99 # r > n, uses r % n
99 % 99 = 0 # r % n = n % r = 0, terminated
Result: [1234575, 816021, 92313, 29655, 26037, 20988, 4950, 198, 99]
Contoh terakhir n=11000:
11000 % 11 = 0 # n % r = 0, terminated
Result: []
Ini adalah kode-golf kemenangan byte-count terendah.