Python 0
Earilerを投稿しましたが、条件を使用しました。ここでは、条件とトークンを使用せず、キーワードのみを使用します
def g(x): return ([[lambda : g(sum(int(y) for y in list(str(x)))),lambda: 0][[False,True].index(x in[0,1,2,4,5,7,8])], lambda: 1][[False,True].index((lambda y: y in[3,6,9])(x))])()
3の倍数に3を加算する数字があるというトリックを使用します
編集:不要なラムダを削除
def g(x):return([[lambda: g(sum(int(y) for y in list(str(x)))),lambda:0][[False,True].index(x in[0,1,2,4,5,7,8])], lambda:1][[False,True].index(x in[3,6,9])])()
編集:さらにゴルフ(117文字)してもトークンはありません
exec"g=`x:(((`:g(sum(int(y)for y in str(x)),`:0)[x in[0,1,2,4,5,7,8]],`:1)[x in[3,6,9]])()".replace('`','lambda ')
Pythonの気の利いたgetitemの 132文字で長くなった直接アクセスを強制終了しました。
exec"g={0}x:((({0}:g(sum(int(y)for y in str(x))),{0}:0{1}0,1,2,4,5,7,8]),{0}:1{1}3,6,9]))()".format('lambda ',').__getitem__(x in[')
http://www.codeskulptor.org/#user34_uUl7SwOBJb_0.py