Bất kỳ số nguyên dương nào cũng có thể thu được bằng cách bắt đầu bằng 1 và áp dụng một chuỗi các thao tác, mỗi số này là "nhân với 3" hoặc "chia cho 2, loại bỏ phần còn lại" .
Ví dụ (viết f cho * 3 và g cho / 2):
4 = 1 *3 *3 /2 = 1 ffg
6 = 1 ffggf = 1 fffgg
21 = 1 fffgfgfgggf
Viết chương trình với hành vi sau:
Đầu vào : bất kỳ số nguyên dương nào, thông qua stdin hoặc mã hóa cứng. (Nếu được mã hóa cứng, số đầu vào sẽ được loại trừ khỏi độ dài chương trình.)
Đầu ra : một chuỗi f và g sao cho <input> = 1 <string>
(như trong ví dụ). Một chuỗi như vậy theo thứ tự ngược lại cũng được chấp nhận. NB: Đầu ra chỉ chứa f và g, hoặc trống.
Người chiến thắng là mục có ít byte đầu ra của chương trình cộng với đầu ra khi 41 là đầu vào.
x mod 3
: nếu x=3y
xây dựng y và sau đó áp dụng f
; nếu x=3y+1
xây dựng 2y+1
và áp dụng f
sau đó g
; nếu x=3y+2
sau đó nó trở nên phức tạp nhưng về cơ bản là đệ quy.