コラッツ数列を作る関数chainを書け

コラッツ数列の定義

任意の自然数から開始する
数が 1ならば 、終了
数が偶数なら 、 2で割る
数が奇数なら 、 3倍して 1を足す
新しい値でこのアルゴリズムを繰り返す

使用例

>chain 10
[ 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ]

>chain 1
[ 1 ]

>chain 30
[ 3 0 , 1 5 , 4 6 , 2 3 , 7 0 , 3 5 , 1 0 6 , 5 3 , 1 6 0 , 8 0 , 4 0 , 2 0 , 1 0 , 5 , 1 6 , 8 , 4 , 2 , 1 ]