Note that $a_n>1$ eventually. Next, we obtain $a_{n+2}-a_{n+1}=a_n a_{n+1}$, so $a_{n+2}=a_{n+1}(a_n+1)$. In particular, $a_{n+1}\mid a_{n+2}$ so for any $j\ge i\ge 1$, $a_i\mid a_j$. Hence, if $a_i>1$ then any prime divisor of $a_i$ divides all $a_j$, $j\ge i$, this establishes (a).
Next, we have
\[
\frac{a_{n+2}}{a_{n+1}} = a_n+1 \Rightarrow a_{n+2} = a_2(1+a_1)(1+a_2)\cdots (1+a_n).
\]We now prove (b). Assume the number of primes dividing a term of this sequence is finite, call them $p_1,\dots,p_k$. Let $n_i$ be such that $p_i\mid a_{n_i}$. Then for $M>\max\{n_1,\dots,n_k\}$, we get that $p_i\mid a_M$. Inspecting $a_{M+2}$, we get $1+a_M\mid a_{M+2}$, but $1+a_M$ is not divisible by $p_1,\dots,p_k$. So, $a_{M+2}$ has a prime divisor not contained in list $p_1,\dots,p_k$, a contradiction.