master amadaluzia/rosetta-collatz / shell / bin / collatz
 1#!/bin/sh
 2
 3collatz()
 4{
 5    a="$1"
 6    if [ $((a % 2)) -eq 0 ]
 7    then
 8        echo $((a / 2))
 9    else
10        echo $((3 * a + 1))
11    fi
12}
13
14collatzSequence()
15{
16    result="${1}: "
17    i="$1"
18
19    while true
20    do
21        if [ "$i" -eq 1 ]
22        then
23            result="${result}1"
24            break
25        fi
26        result="${result}${i}, "
27        i="$(collatz "$i")"
28    done
29    echo $result
30}
31
32for i in $(seq 10000)
33do
34    echo "$(collatzSequence "$i")"
35done