Jede positive ganze Zahl kann erhalten werden, indem mit 1 begonnen und eine Folge von Operationen angewendet wird , von denen jede entweder "mit 3 multiplizieren" oder "durch 2 dividieren und den Rest verwerfen" ist .
Beispiele (Schreiben von f für * 3 und g für / 2):
4 = 1 *3 *3 /2 = 1 ffg
6 = 1 ffggf = 1 fffgg
21 = 1 fffgfgfgggf
Schreiben Sie ein Programm mit folgendem Verhalten:
Eingabe : jede positive ganze Zahl, über stdin oder fest codiert. (Wenn fest codiert, wird die Eingabezahl von der Programmlänge ausgeschlossen.)
Ausgabe : Eine Zeichenfolge von fs und gs, so dass <input> = 1 <string>(wie in den Beispielen). Eine solche Zeichenfolge in umgekehrter Reihenfolge ist ebenfalls akzeptabel. NB: Die Ausgabe enthält nur fs und gs oder ist leer.
Der Gewinner ist der Eintrag mit den wenigsten Bytes an Programm plus Ausgabe, wenn 41 die Eingabe ist.
x mod 3: wenn x=3yy konstruieren und dann anwenden f; wenn x=3y+1konstruieren 2y+1und anwenden fdann g; wenn x=3y+2es dann kompliziert wird, aber im Wesentlichen rekursiv ist.