Consider the procedure $\text{MYSTERY}$ described in pseudocode below. The procedure takes two non-negative integers as arguments. For a real number $x$ the notation $[x]$ denotes the largest integer which is not larger than $x$.
$\text{MYSTERY (p,q)}$
- $\textbf{if}\;p==0$
- $\textbf{then return} \;0$
- $r \leftarrow \llcorner p/2\lrcorner$
- $s\leftarrow q+q$
- $t \leftarrow \text{MYSTERY (r,s)}$
- $\textbf{if}\; p\; is\; even$
- $\textbf{then return}\; t$
- $\textbf{else return}\; t+q$
- What does $MYSTERY(100,150)$ return?
- How many times is the statement on line $8$ executed in a call to $MYSTERY(100,150)$?
- In general, what does $MYSTERY(m,n)$ return for $m,n\underline> 0?$ Justify your answer with a proof.