Trình tự của Kuznetsov
(I made the name up, don't bother with Wikipedia or Google)
Cho bất kỳ số nào n > 0, hãy rbiểu diễn đảo ngược của số n. Lặp lại cho đến khi kết quả cuối cùng bằng 0, chuyển kết quả của mỗi lần lặp lại vào hàm bằng cách sử dụng đệ quy hoặc phương pháp bạn chọn bằng cách thực hiện thao tác bên dưới:
- Nếu
r > ncho lần lặp đó kết quả làr % n. - Nếu
n > rcho lần lặp đó kết quả làn % r. - Nếu
n % r = 0hoặcr % n = 0, bạn chấm dứt lặp đi lặp lại.
Lấy kết quả trung gian của mỗi lần thực hiện và lưu trữ chúng trong một mảng cho câu trả lời cuối cùng. Số ban đầu nkhông phải là một phần của chuỗi, cũng không phải là 0; các ví dụ sẽ làm cho mọi thứ rõ ràng hơn một chút.
Hãy đi qua một ví dụ 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]
Một ví dụ khác 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]
Một ví dụ cuối cùng n=11000:
11000 % 11 = 0 # n % r = 0, terminated
Result: []
Đây là chiến thắng đếm byte thấp nhất trong mã golf .