2つの五角数の差と和もまた五角数になるという2つの五角数の差を求める問題
題意は一番小さなものということなのですが、二つの五角数を選んで探すと、本当に一番小さいものなのかどうなのかわからず、それを解決するために、結構苦戦しました。
まずは、2つの五角数の差Dについて考えるのですが、D=P(n)ーP(n-i)について考えることにします。
D=(6ni-3i^2-i)/2です。
なので、Dを与えて、iに対して整数のnが見つかるかどうか調べます。
Dが一定のとき、iが大きくなるに従い、nはどんどん小さくなり、n=kの時、iが一番大きくなります。つまりiは1~kの間ということになります。nがkより小さくなると、P(n)ーP(n-i)がDとなることはありません。
この考えに至る部分でかなり悩んでしまいました。
そして、これで見つかった、n,iを使って、P(n)+P(n-i)を求め、これが五角数であることを確認すればよいわけです。
こうやって調べてみると、Dの小さい方から、探すことができます。
ここまで来ると、調べる数はかなり少ないです。
五角数であることの確認は、他のサイトを見てもらえればよいかと思います。
こうやって探してみると、一番小さい値はすぐに見つかりますが、
次の値の間にはかなり隔たりがあって、
次のDは3215928562、さらに、4620347250、8476206790、16880669542、23187980167と続きます。
159690730992まで見つかりました。
さらに高速化できるでしょうか。