Project Euler 136

Problem 136

これは前々回の面倒な方法が使えます。

nが2を含まないとき、4で割って余り3の素数pなら約数は1とpですが、

y = p
4d - y = 1

なら

z = p - (p + 1) / 4 > 0

で成り立ちますが、

y = 1
4d - y = p

なら

z = 1 - (p + 1) / 4 ≤ 0

だから成り立ちません。よってちょうど1組だけ解があることが分かります。
nが2を含まないで合成数のとき、4で割って余りが1なら解は0、
3なら必ず2つ以上の解があります。
nが2を含むときもほぼ同様です。2をちょうど2つ含むとき、n = 4pなら解が1つです。2をちょうど4つ含むとき、n = 16pなら解が1つです。その他のときは解が1つになることはありません。

16秒でした。