จำนวนเต็มบวกใด ๆ สามารถรับได้โดยเริ่มต้นด้วย1และการประยุกต์ใช้ลำดับของการดำเนินงานของแต่ละคนซึ่งเป็นทั้ง"คูณด้วย 3"หรือ"หารด้วย 2 ทิ้งเหลือใด ๆ"
ตัวอย่าง (เขียน f สำหรับ * 3 และ g สำหรับ / 2):
4 = 1 *3 *3 /2 = 1 ffg
6 = 1 ffggf = 1 fffgg
21 = 1 fffgfgfgggf
เขียนโปรแกรมด้วยพฤติกรรมดังต่อไปนี้:
อินพุต : จำนวนเต็มบวกใด ๆ ผ่าน stdin หรือรหัสฮาร์ดโค้ด (ถ้าฮาร์ดโค้ดตัวเลขอินพุตจะถูกแยกออกจากความยาวของโปรแกรม)
เอาต์พุต : สตริงของ f's และ g's เช่นนั้น<input> = 1 <string>
(ดังในตัวอย่าง) สตริงดังกล่าวในลำดับที่กลับกันก็ยอมรับได้ หมายเหตุ: ผลลัพธ์ประกอบด้วย f's และ g เท่านั้นหรือว่างเปล่า
ผู้ชนะคือรายการที่มีจำนวนไบต์น้อยที่สุดของprogram-plus-outputเมื่อ 41 คืออินพุต
x mod 3
: ถ้าx=3y
สร้าง y แล้วใช้f
; ถ้าx=3y+1
สร้าง2y+1
และนำไปใช้f
แล้วg
; ถ้าเป็นเช่นx=3y+2
นั้นมันจะซับซ้อน แต่ก็เป็นแบบเรียกซ้ำ