// Preliminary Part about the 3n+1 conjecture
//============================================
object CW6a {
//(1) Complete the collatz function below. It should
// recursively calculate the number of steps needed
// until the collatz series reaches the number 1.
// If needed, you can use an auxiliary function that
// performs the recursion. The function should expect
// arguments in the range of 1 to 1 Million.
def collatz(n: Long) : Long = ???
//(2) Complete the collatz_max function below. It should
// calculate how many steps are needed for each number
// from 1 up to a bound and then calculate the maximum number of
// steps and the corresponding number that needs that many
// steps. Again, you should expect bounds in the range of 1
// up to 1 Million. The first component of the pair is
// the maximum number of steps and the second is the
// corresponding number.
def collatz_max(bnd: Long) : (Long, Long) = ???
//(3) Implement a function that calculates the last_odd
// number in a collatz series. For this implement an
// is_pow_of_two function which tests whether a number
// is a power of two. The function is_hard calculates
// whether 3n + 1 is a power of two. Again you can
// assume the input ranges between 1 and 1 Million,
// and also assume that the input of last_odd will not
// be a power of 2.
def is_pow_of_two(n: Long) : Boolean = ???
def is_hard(n: Long) : Boolean = ???
def last_odd(n: Long) : Long = ???
}