Setiap bilangan bulat positif dapat diperoleh dengan memulai dengan 1 dan menerapkan urutan operasi, yang masing-masing dapat "dikalikan dengan 3" atau "dibagi dengan 2, membuang sisanya" .
Contoh (menulis f untuk * 3 dan g untuk / 2):
4 = 1 *3 *3 /2 = 1 ffg
6 = 1 ffggf = 1 fffgg
21 = 1 fffgfgfgggf
Tulis program dengan perilaku berikut:
Input : bilangan bulat positif, melalui stdin atau hard-coded. (Jika hard-coded, numeral input akan dikecualikan dari panjang program.)
Output : string f's dan g's sedemikian rupa <input> = 1 <string>(seperti dalam contoh). String seperti itu dalam urutan terbalik juga dapat diterima. NB: Output hanya berisi f's dan g's, atau kosong.
Pemenangnya adalah entri dengan byte terkecil dari program-plus-output ketika 41 adalah input.
x mod 3: jika x=3ymembangun y dan kemudian menerapkan f; jika x=3y+1membangun 2y+1dan menerapkan fkemudian g; jika x=3y+2kemudian menjadi rumit tetapi pada dasarnya bersifat rekursif.