http://www.yozemi.ac.jp/nyushi/sokuho/recent/tokyo/zenki/index.html
この問題が分りません。

何故
a[n+2]=(整数)p+b[n+1]*(b[n]+1)
という形になれば、b[n+2]がb[n+1]*(b[n]+1)をpで割った余りと一致するんですか?

b[n+1]*(b[n]+1)=(整数)*p+b[n+2]という形にしてなくないですか?