整数問題

以前に清水川さんのところで回文数が話題になったことがありましたが、整数問題として以下のような問題も面白いと思います。

aを3以上9999以下の奇数とする。
a^2-a が 10000 で割り切れるような a をすべて求めよ。

プログラムで書いてしまうとあまりにもあっさりしすぎていて味気ないのですが・・・。

def isdivisible(x):
    return True if x * (x-1) % 10000 == 0 else False

for i in xrange(3, 10000, 2):
    if isdivisible(i): print i

プログラムを走らせて回答を知った上で、数学的に解いてみるのも良いでしょう。通勤時間の脳のトレーニングにはちょうどいい感じです。