他のメモへのリンク集。リンク集を飛ばして、このページの前書きへ。本文の目次へ。
![]()
『遊びの数論63』の続き。誤字脱字・間違いがあるかも。

![]()
2026-08-03 ウォルステンホームの第2命題・再訪 ちょっと目からうろこ
ウォルステンホームの定理といえば、 n が 5 以上の素数のとき
1/1 + 1/2 + 1/3 + ··· + 1/(n − 1)
の分子は n2 で割り切れる、という命題を指すことが多い。有名な美しい定理ではあるが、本来これは3部構成の命題の一つ目。第2命題は、同じ条件において、
1/12 + 1/22 + 1/32 + ··· + 1/(n − 1)2
の分子が n で割り切れる、というもの。標準的なアプローチでは、第1命題の証明のとき、とある整数 A, B がどちらも n の倍数であることが示される。「だったら A2 − 2BC も n の倍数だよね」(n の倍数と n の倍数の差なのだから)、というロジックで、第1命題のついでのように、第2命題は証明される。最後の第3命題は、第1命題ほどではないにせよ、それなりに有名(こっちも「ウォルステンホームの定理」と呼ばれる)。3部構成のうち、真ん中の第2命題だけは「おまけ」扱いというか、軽視されている。
理由は「第1命題が証明されると、連動的に証明されてしまい、パズル的な面白さが低い」ということかもしれないし、「第1命題の分母に《2乗》が付いただけで、二番煎じの類似品。 n2 で割り切れるという第1命題と比べ、単に n で割り切れるというだけでは地味」ということかもしれない。
ところが、この不人気の第2命題に、一般には知られていない「意外な事実」が隠されていた! 第2命題は、次の定理と同値なのだが………
定理 q が 5 以上の素数のとき、 q − 1 個の平方数 12, 22, ···, (q − 1)2 の「q − 2 個ずつの積」の和は、 q の倍数。
………この定理、実は q が素数でなくても、奇数の合成数であっても、成立する! ウォルステンホームの定理では、「n が 5 以上の素数なら」という枕詞がお約束。でも、第2命題に関しては、もし仮に分数の足し算結果を約分しないのであれば、「n が 5 以上の素数なら」というお約束をぶち破って門戸を広げ、「n が 5 以上の奇数ならオッケー。素数でない子も一緒に遊ぼっ。 9, 15, 21, ··· みんな、おいでよ☆」とできる!
なんて心温まる話(?)でしょう。っつーか、第2命題がいかに「おまけ扱い」され、深く研究されずに適当にあしらわれてきたかを如実に物語るエピソード、といえるかもしれない。
![]()
§43 表記の簡潔化のため、
1/12 + 1/22 + 1/32 + ··· + 1/(n − 1)2
の代わりに、文字を変えて
1/12 + 1/22 + 1/32 + ··· + 1/(q − 1)2
として、 q − 1 をあらためて n と置く。すると、問題の和は:
Hn(2) = 1/12
+ 1/22
+ ···
+ 1/n2
この形の方がちょっとだけシンプルかと。この Hn(2) を機械的に通分した分子を考えよう。すなわち各項の分母を 12⋅22⋅32···n2 = (n!)2 にそろえた場合、第1項の分子は:
22⋅32⋅42⋅52···n2 = (n!)2/12
第2項の分子は:
12⋅32⋅42⋅52···n2 = (n!)2/22
第3項の分子は:
12⋅22⋅42⋅52···n2 = (n!)2/32
等々。従って、通分後の足し算で生じる分子は、
1, 2, 3, ···, n
の「n − 1 個ずつの積」の和 Sn−1(n) の平方数バージョン。つまり
12, 22, 32, ···, n2
の「n − 1 個ずつの積」の和 Un−1(n) だ。総和記号で表記するなら:
∑{k=1 to n} (n!)2/k2
(この値は Hn(2) の足し算結果ではなく、 Hn(2) の分数たちを機械的に通分して足し算したときの、約分前の分子に当たる。)
〔例〕 12⋅22⋅32⋅42 = (4!)2 = 242 = 576 に留意すると:
1/12
+ 1/22
+ 1/32
+ 1/42
=
(576/12 + 576/22 + 576/32 + 576/42)/576
= (576 + 144 + 64 + 36)/576
この分子で足し算される四つの数は:
22⋅32⋅42 = 576
12⋅32⋅42 = 144
12⋅22⋅42 = 64
12⋅22⋅32 = 36
ちなみに、それらの和 820 が素数 n + 1 = 5 で割り切れる、というのが、 Wolstenholme の第2命題の事例。
820/576 = 205/144
のように既約分数に約分しても、分子が 5 で割り切れるという事実に変わりはない(約分前の分母 (4!)2 は素因子 5 を持たないので、分子の素因子 5 は決して約されない)。
このような Un−1(n) の計算は、あまり見通しが良くない。次のようにすることで、これを比較的なじみ深いスターリング数 Sr(n) の計算に帰着させることができる。上の例でいえば、
22⋅32⋅42
+ 12⋅32⋅42
+ 12⋅22⋅42
+ 12⋅22⋅32
が欲しい。つまり(項の順序をソートすると)、
U3(4) = 12⋅22⋅32
+ 12⋅22⋅42
+ 12⋅32⋅42
+ 22⋅32⋅42 ア
が欲しい。各因子に付いている「2乗」さえなければ、これは単なるスターリング数
S3(4) = 1⋅2⋅3 + 1⋅2⋅4 + 1⋅3⋅4 + 2⋅3⋅4
なので、簡単に操作できる(最も直接的には [5 S 2] = 4! H4 である)。従って U3(4) を直接的に計算して因子を一つ一つ平方する代わりに、
{S3(4)}2 = (1⋅2⋅3 + 1⋅2⋅4 + 1⋅3⋅4 + 2⋅3⋅4)2 イ
のように、まとめて一気に平方して、そこから U3(4) を導くのが得策かも、と思われる(実際、それがこの場合の定石でもある)。
イを展開すると、
(1⋅2⋅3)2 = 12⋅22⋅32 や (1⋅2⋅4)2 = 12⋅22⋅42
等々の、求めるべきアの成分が全て得られる他、
2[(1⋅2⋅3)(1⋅2⋅4) + (1⋅2⋅3)(1⋅3⋅4) + ···]
の形の不必要な項も発生する。しかし、この不要部分を引き算で除去することは(スターリング数の立場からは)易しい。実際、イは、一般的に言えば、
(n!/1 + n!/2 + n!/3 + ··· + n!/n)2
の形なので、発生する不必要な部分は、次の形式を持つ:
2[(n!/1)(n!/2) + (n!/1)(n!/3) + ···] = 2(n!) [n!/(1⋅2) + n!/(1⋅3) + ···]
この右辺の [ ] 内は、 1 から n までの数の「n − 2 個ずつの積」の和 Sn−2(n) だ。例えばイから生じるこの部分は 2(4!) S2(4) であるから、
U3(4) = {S3(4)}2 − 2(4!) S2(4)
となる。一般的に言えば:
Un−1(n) = {Sn−1(n)}2 − 2(n!) Sn−2(n)
n = q − 1 と置くと:
Uq−2(q − 1) = {Sq−2(q − 1)}2 − 2⋅(q − 1)!⋅Sq−3(q − 1) ウ
別表記 Wm(q) = Sm(q − 1) を使うと:
Uq−2(q − 1) = {Wq−2(q)}2 − 2⋅(q − 1)!⋅Wq−3(q) エ
あるいは、同じことだが、 (q − 1)! = Wq−1(q) なので:
Uq−2(q − 1) = {Wq−2(q)}2 − 2⋅Wq−1(q)⋅Wq−3(q) オ
q が 5 以上の素数のとき、 Wq−2(q), Wq−3(q) が q の倍数であることは周知(Lagrange の定理)。よってエの右辺は q の倍数、それに等しい Uq−2(q − 1) = Un−1(n) も q の倍数。この Un−1(n) が Hn(2) の和の分子だから、 Wolstenholme の第2命題が生じる。
さらに Glaisher は、地味だが繊細な観察を追加した。―― Wolstenholme の定理では「5 以上の素数」ということが重要な前提。証明に使われるウないしエないしオ(どの式も実質同じ意味)においても「q は 5 以上の素数」という条件が当然予期されるのだが、実は q が素数でなくても、 5 以上の奇数であれば Uq−2(q − 1) は q で割り切れる!
定理8(Glaisher [7], §28) 任意の奇数 q ≥ 5 について(q は素数でも合成数でも構わない)、 q − 1 種類の平方数
12, 22, 32, ···, (q − 1)2
の q − 2 個ずつの積の和 Uq−2(q − 1) は、 q で割り切れる。
q が素数なら、これは Wolstenholme の定理の証明ツールとして使われる関連命題に過ぎない。あるいは、別の角度から言うと、定理7の一事例に過ぎない。しかし q は素数でなくても構わない――その点が、ちょっと目からうろこ。
証明 仮定により q ≥ 5 は奇数だから q − 2 も奇数。よって Wq−2(q) は q の倍数(命題3)。ゆえにエの右辺・第1項は q の倍数。
もし q が奇素数(q = 5, 7, 11, 13, 17, 19, ···)なら Wq−3(q) は q の倍数(Lagrange の定理)。一方、もし q が奇数の合成数(q = 9, 15, 21, ···)なら (q − 1)! は q の倍数†。どちらの場合でも、エの右辺・第2項は q の倍数。
従ってエの右辺は q の倍数。それに等しい左辺 Uq−2(q − 1) も q の倍数。∎
† もし合成数 q = u2 が(奇数の)平方数なら、整数 1, 2, ···, q − 1 の中には u と 2u が含まれる(もちろん u ≠ 2u)。よって (q − 1)! は u⋅2u = 2u2 の倍数、従って u2 = q の倍数。一方、もし合成数 q が平方数でないなら、その非自明な約数 u を任意に一つ選んで q = uv と置くと、整数 1, 2, ···, q − 1 の中には u と v が含まれる(u ≠ v)。よって (q − 1)! は u⋅v = q の倍数。
Lagrange の定理よりほんの少し広く、 q が素数でなくても Wq−2(q) は q の倍数(第1項クリア)。 q が素数でないと Wq−3(q) は q の倍数にならないものの、そのときは Wq−1(q) = (q − 1)! が q の倍数となってカバーしてくれる(第2項クリア)。言われてみれば何でもないことだが、見落とされがちな細道かもしれない。(q が素数のときは (q − 1)! は q の倍数になり得ないが、そのときは Wq−3(q) が q の倍数なので、トータルではどっちでもオーケー。)
スターリング数
9(ナイン)の段
8! = 40320
109584
(投球後走る)
118124
(いい肺・二死)
心肺機能が
強力な投手が
活躍してるらしい。
スクイズか
バントを
猛ダッシュで捕球
ダブルプレー?
〔例〕 q = 9 のとき、エから:
U7(8) = {W7(9)}2 − 2⋅8!⋅W6(9)
W7(9) と 8! はどちらも 9 の倍数なので、上記の数 U7(8) は 9 の倍数。参考までに具体的な数値を記すと、 W7(9) = 109584 《投球後走る》は 9 の倍数[直接的にも、桁の和 (1 + 8) + 9 + (5 + 4) は 9 の倍数]。 (q − 1)! = 8! = 40320 もまたしかり[直接的にも、桁の和 4 + 3 + 2 は 9 の倍数だし、単純に考えて 8! = 1⋅2⋅3⋅4⋅5⋅6⋅7⋅8 は明らかに 3⋅6 = 18 の倍数、従って 9 の倍数]。すなわち:
U7(8) = (109584)2 − 2⋅40320⋅118124
ここで 118124 《いい肺・二死》はスターリング数 W6(9) であるが、 U7(8) が 9 で割り切れるという結論を得るためには、この具体的数値は必要ない。単に 109584 と 40320 がどちらも 9 の倍数であるということから、上記右辺は「9 の倍数(の平方)とら 9 の倍数の差」となり、結果は 9 の倍数。 W7(9) = 109584 自体、具体的数値は必要なく、 W7(9) は 9 の倍数という事実から――より一般的に言えば「k, ℓ が奇数なら Wk(ℓ) は ℓ の倍数」という一般原則から――、具体的な数値を考えるまでもなく、結論が得られる。
![]()
§44 定理8は行き止まりの袋小路ではなく、そこを経由して多少の応用も利く。
t ≥ 1 と q ≥ 2 を整数、 L = 2q とする。 σ の基本公式〘ⅲ〙から:
S2t(2q − 1) ≡ σt(q − 1; 2q) (mod q2)
一方、 n = q − 1 ≥ 1 と L = 2(n + 1) = 2q について、法 (L/2)2 = q2 の下で補題7を使うと:
σt(q − 1; 2q) ≡ (−1)t Ut(q − 1) − (−1)t (2q)⋅Ũt(q − 1) (mod q2) カ
従って:
S2t(2q − 1) ≡ (−1)t Ut(q − 1) − (−1)t (2q)⋅Ũt(q − 1) (mod q2)
∴ S2t(2q − 1) ≡ (−1)t Ut(q − 1) (mod q) キ
今 q を 5 以上の奇数に限定する。このとき Uq−2(q − 1) ≡ 0 (mod q) が成り立つこと(定理8)に留意しつつ、キに t = q − 2 を代入すると:
S2q−4(2q − 1) ≡ 0 (mod q) ク
同様に、基本公式〘ⅳ〙から:
S2t+1(2q − 1) ≡ (q − t − 1/2)⋅2q⋅σt(q − 1; 2q) (mod q3)
カを使うと:
S2t+1(2q − 1) ≡ (2q − 2t − 1)⋅q⋅[(−1)t Ut(q − 1) − (−1)t (2q)⋅Ũt(q − 1)] (mod q3)
∴ S2t+1(2q − 1) ≡ (2q − 2t − 1)⋅q⋅[(−1)t Ut(q − 1)] (mod q2)
q を 5 以上の奇数と仮定して t = q − 2 と置くと、この最後の合同式の [ ] 内は ≡ 0 (mod q2) であるから:
S2(q−2)+1(2q − 1) = S2q−3(2q − 1) ≡ 0 (mod q2) ケ
ケとクをまとめると:
命題4([7], §29) q が 5 以上の奇数なら:
S2q−3(2q − 1) = W2q−3(2q) = [2q S 3] ≡ 0 (mod q2)
S2q−4(2q − 1) = W2q−4(2q) = [2q S 4] ≡ 0 (mod q)
q が素数 p の場合に関しては、この命題は、 Glaisher 自身による追記において、より一般的な定理4に包含されることになる(証明の手法も、定理4の方が直接的でシンプル)。
Glaisher は W1(2p), W2(2p), ···, Wp−1(2p) に続けて、できれば Wp(2p), Wp+1(2p), ···, W2p−1(2p) を統一的に扱いたかったに違いない。しかし Wp−1 と Wp が、単純な再帰的議論を妨げる壁となっていた。ここでは苦し紛れに(?)、 W2p−4 と W2p−3 だけ、工夫して(かなり回りくどいが、興味深い論法によって)個別的に処理している。さいわい出版直前に解決法を思い付き、本文に脚注と追記を付加したのであった。
![]()
q が奇数の合成数の場合、命題4は一応、追記部分とは独立の、新しい成果だ。とはいうものの q が奇数の合成数の場合については、取って付けたように W2q−3(2q) と W2q−4(2q) だけ抜き出さなくても、 W2q−1(2q) = (2q − 1)! が因子 q を何個持つか直接カウントすることによって、
W2q−1, W2q−2, W2q−3, W2q−4, W2q−5
を統一的に扱うことができ、 W2q−3 と W2q−4 についても、命題4より少し強い結果が得られる。従って「結果」だけを問題にするのなら、命題4は、「よりシンプルなアプローチによる、より一般的な結果」によって上書きされてしまう。けれど、スターリング数と関連深い「中央階乗数」を利用する手法の面白さは、注目に値する。論法は少し風変わりかもしれないが、 q が奇素数の場合と奇数の合成数の場合を同時に扱えるというメリットも持つ。
![]()