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まで見つかりました。

 

さらに高速化できるでしょうか。