bool isEven(int x) { if (divide(x, 2) * 2 == x) { return true; } else { return false; } } int divide (int a, int b) { if (b == 0) { return 0; } var result = 0; while (a > 0) { a = a - b; result = result + 1; } return result; } int helper(int x, int count) { if (x == 1) { return count; } else if (isEven(x)) { return helper(divide(x, 2), count + 1); } else { return helper(3 * x + 1, count + 1); } } int collatz(int x) { return helper(x, 0); } int program(int argc, string[] argv) { return collatz(12); }