Project Euler 141(1)

Problem 141

n = m2 = qd + r

とします。rdより小さいから、r2 = qdまたはq2 = rdとなります。前者なら、

m2 = r2 + r

r2と(r + 1)2の間に平方数は無いので前者はありえません。
さて、

q2 = rd

が成り立つので、例えば、r = 1なら、公比は2, 3, 4, …となります。r = 2なら、2, 3, 4, …、r = 4なら、3/2, 2, 5/2, …となります。一般に、r = s2ttは平方を含まない)とすると、公差は(s + 1) / s, (s + 2) / s, (s + 3) / s, …となります。こうして生成されたr, q, dに対してdq + rが平方数ならそれがprogressive perfect squaresです。
23秒でした。