約数の個数の偶奇判定。
問題
input:
整数 n
output:
k = 整数 n の約数の個数
とする。このとき k が奇数ならば yes, 偶数ならば no
n の約数を並べてみると、
となる。
ここでポイントになるのが次の命題
任意の について
が成り立つ。
つまり、約数列の前から i 番目と後ろから i 番目でペアを作ることができる。
しかし、約数の個数が奇数の場合は、ちょうど真ん中 ( i = (k-1)/2 ) が存在し、ペアを作れない。
このとき、
すなわち、
である。
この逆を辿ると、 が整数ならば、それは n の約数に含まれ、約数列の中で孤立することがわかる。
ゆえに、k が奇数 ⇔ が整数