プログラミングコンテストチャレンジブック第2版を読んでいます。

以下の問題があります。解ける人はいますか?

(3 + Sqrt[5])^n の整数部分を 1000 で割った余りを Θ(log(n)) で計算するアルゴリズムを書け。