759 : 漸化式の2乗

関数ffをあらゆる正の整数に対して次のように定義する: f(1)=1f(1) = 1 f(2n)=2f(n)f(2n) = 2f(n) f(2n+1)=2n+1+2f(n)+1nf(n)f(2n+1) = 2n + 1 + 2f(n) + \frac{1}{n}f(n)

f(n)f(n)があらゆるnnに関して整数であることが証明できる。

関数S(n)S(n)S(n)=i=1nf(i)2\displaystyle S(n) = \sum_{i=1}^n f(i)^2と定義する。 例えば、S(10)=1530,S(102)=4798445S(10) = 1530, S(10^2) = 4798445である。

S(1016)S(10^{16})を求めよ。答えは10000000071\,000\,000\,007で割った余りを入力せよ。

最終更新