2026年東大 数学 第6問 は整数の問題で、ぱっと見簡単そうに見えますが、とんでもはっぷんな捨て問です。問題文は以下の通りで、東大2次試験からの引用です。
n を正の整数とする。 n の正の約数のうち、 3で割って1余るものの個数を f(n) 、3 で割って2余るものの個数を g(n) とする。
(1) f(2800),g(2800) を求めよ。
(2) f(n) \geqq g(n) を示せ。
(3) g(n) = 15 であるとき、 f(n) のとりうる値を求めよ。
約数それ自体ではなく、その個数を問題にしているところが新機軸です。割と何とかなりそうな気もしますがどうでしょうか。それでは見ていきましょう。なお、本稿の内容は東大が発表したものではありません。
2026年東大 数学 第6問 小問1の解法
これは単に計算するだけです。確実に得点しましょう。
2^2 \equiv 1 \mod 3 なので、ある整数 n の約数が3で割って2余るということは、
- n の素因数のうち、3で割って2余るものを奇数個を因数に持つ(=3で割って2余る素因数の指数の和が奇数)
- 3で割り切れる素因数は因数に持たない
- 3で割って1余る素因数はいくつであってもOK
ということです。
2800 = 24 × 52 × 7
であり、2800の素因数で3で割って2余るものは2と5の2つ、3で割って1余るものは7の1つ、3で割り切れるものはありません。
ところで、3で割って2余る約数の数は、3で割って2余る素因数を重複して奇数個取り出す場合の数と、3で割って1余る素因数を重複して任意の数取り出す場合の数の積です。
3で割って2余る素因数を奇数個取り出す場合の数は、
| 2の指数 | 5の指数 |
|---|---|
| 0 | 1 |
| 1 | 0 |
| 1 | 2 |
| 2 | 1 |
| 3 | 0 |
| 3 | 2 |
| 4 | 1 |
の7通りです。
3で割って1余る素因数の取り出し方は、7を含むか含まないかの2通りなので、3で割って2余る約数の個数は
7 × 2 = 14
です。
2800のすべての約数の数は
5 × 3 × 2 = 30
であり、3で割り切れる約数はないので、3で割って1余る約数の数は
30 – 14 = 16
です。
ゆえに
\begin{aligned}
f(2800) & = 16 \\
g(2800) & = 14
\end{aligned}です。
2026年東大 数学 第6問 小問2の解法
f(n) \geqq g(n) を証明するには、3で割って2余る約数に3で割って1余る約数が対応付けられればOKです。
よって、3で割って2余る約数に含まれる、3で割って2余る素因数のどれか1つの指数を1つ下げれば、それは3で割って1余る約数になります。こうやって3で割って2余る約数に3で割って1余る約数を対応づけられる、ということをきちんと記述すればOKです。
などと考えていましたが、よく考えてみると対応付けに一意性がないとだめで、それを示すのは結構大変そうなことに、小問3に取り掛かっていて気が付きました。世の中そんなに甘くありません。
そこで仕切り直しです。まず、3を素因数に持たない約数の個数がお題なので、 n は3を約数に持たないとして一般性を失いません。
次に、小問1で見たように、 g(n) は3で割って2余る素因数を重複して奇数個取り出す場合の数と、3で割って1余る素因数を任意の数重複して取り出す場合の数の積です。言い換えると、3で割って2余る素因数の指数の和が奇数になる組み合わせの数と、3で割って1余る素因数の指数の組み合わせの数の積です。
同様に、 f(n) は3で割って2余る素因数の指数の和が偶数になる組み合わせの数と、3で割って1余る素因数の指数の組み合わせの数の積です。
このことをもう少し厳密に記述します。
n =p_1^{k_1} p_2^{k_2} \cdots p_m^{k_m}q_1^{l_1} q_2^{l_2} \cdots q_m^{l_m}であるとします。ここに p_1,p_2 ,\cdots,p_m は互いに異なる3で割って2余る素数、 q_1,q_2 ,\cdots,q_m は互いに異なる3で割って1余る素数、 k_1,k_2,\cdots k_m,l_1,l_2,\cdots, l_m は自然数です。
有限集合 S の要素数を #S と表記するとき、
\begin{aligned}
e = \# \left \{
\begin{aligned}
(x_1,\cdots,x_m) \\
\in\mathbb{Z}^m
\end{aligned}
\left |
\begin{aligned} & \text{すべての} 1 \leqq i \leqq m \\
&\text{に対し} 0 \leqq x_i \leqq k_i \\
& \text{かつ} \sum_{i=1}^m x_i = \text{偶数}
\end{aligned}
\right.
\right\}
\end{aligned}\begin{aligned}
o = \# \left \{
\begin{aligned}
(x_1,\cdots,x_m) \\
\in\mathbb{Z}^m
\end{aligned}
\left |
\begin{aligned} & \text{すべての} 1 \leqq i \leqq m \\
&\text{に対し} 0 \leqq x_i \leqq k_i \\
& \text{かつ} \sum_{i=1}^m x_i = \text{奇数}
\end{aligned}
\right.
\right\}
\end{aligned}\begin{aligned}
a = \# \left \{
\begin{aligned}
(x_1,\cdots,x_m) \\
\in\mathbb{Z}^m
\end{aligned}
\left |
\begin{aligned} & \text{すべての} 1 \leqq i \leqq m \\
&\text{に対し} 0 \leqq x_i \leqq l_i \\
\end{aligned}
\right.
\right\}
\end{aligned}と定義します。
すると、
f(n) = ea,g(n) = oa
が成り立ちます。
したがって
f(n) \geqq g(n)
と
e ≧ o
は同値です。
ここまでたどり着くのに10分以上かかるようなら、とっとと見切りをつけて他のより見込みがありそうな問題に取り組みましょう。
e ≧ o を証明するのに数学的帰納法を使おう、というのは割とすぐに発想できると思いますが、 n の素因数を重複カウントした総数(小問1の2800=24×52×7の場合4+2+1=7)で数学的帰納法を証明しようとすると、場合分けが大変ではまります。3で割って2余る素因数の種類(2800=24×52×7の場合2と5の2種類)で数学的帰納法を証明しようと思いつけるかどうかが、死活的に重要です。
続けます。
自然数 1 ≦ j ≦ m に対し
\begin{aligned}
e_j = \# \left \{
\begin{aligned}
(x_1,\cdots,x_j) \\
\in\mathbb{Z}^j
\end{aligned}
\left |
\begin{aligned} & \text{すべての} 1 \leqq i \leqq j \\
&\text{に対し} 0 \leqq x_i \leqq k_i \\
& \text{かつ} \sum_{i=1}^j x_i = \text{偶数}
\end{aligned}
\right.
\right\}
\end{aligned}\begin{aligned}
o_j = \# \left \{
\begin{aligned}
(x_1,\cdots,x_j) \\
\in\mathbb{Z}^j
\end{aligned}
\left |
\begin{aligned} & \text{すべての} 1 \leqq i \leqq j \\
&\text{に対し} 0 \leqq x_i \leqq k_i \\
& \text{かつ} \sum_{i=1}^j x_i = \text{奇数}
\end{aligned}
\right.
\right\}
\end{aligned}と定義し、 k_1,k_2,\cdots k_m の値が何であっても
e_j \geqq o_j
が成り立つことを j に関する帰納法で証明します。
まず、 j = 1 の場合です。
k1 が偶数のとき
e_1 =\frac{ k_1 }2 +1,o_1 = \frac{ k_1 }2k1 が奇数のとき
e_1 =o_1 = \frac{ k_1+1 }2 が成り立ちます。よって k1 の値が何であっても
e_1 \geqq o_1
であることが示せました。
次に、1 ≦ j ≦ m-1 であるj に対し、 k_1,k_2,\cdots k_j の値が何であっても
e_j \geqq o_j
が成り立つと仮定します。
このとき、
n_{j} = p_1^{k_1} p_2^{k_2} \cdots p_j^{k_j} とおくと、
f(n_j)=e_j,g(n_j) = o_j
です。
ここで
n_{j+1} =n_j p_{j+1}^{k_{j+1}} = p_1^{k_1} p_2^{k_2} \cdots p_j^{k_j} p_{j+1}^{k_{j+1}}と定義すると、 nj+1 の3で割って2余る約数は、
\begin{aligned}
n_j\text{の3で割って1余る約数}\times p_{j+1}^{\text{奇数}}
\end{aligned}または
\begin{aligned}
n_j\text{の3で割って2余る約数}\times p_{j+1}^{\text{偶数}}
\end{aligned}のいずれかです。
よってその個数 oj+1 はkj+1 が偶数の時、
\begin{aligned}
o_{j+1} = & \frac{k_{j+1}}2f(n_j) +(\frac{k_{j+1}}2+1)g(n_j) \\
= &\frac{k_{j+1}}2e_j +(\frac{k_{j+1}}2+1)o_j
\end{aligned}kj+1 が奇数の時、
\begin{aligned}
o_{j+1} = & \frac{k_{j+1}+1}2f(n_j) +\frac{k_{j+1}+1}2 g(n_j) \\
= & \frac{k_{j+1}+1}2e_j +\frac{k_{j+1}+1}2o_j \\
= & \frac{k_{j+1}+1}2(e_j + o_j)
\end{aligned}です。
nj+1 の約数の数は
(k_{j+1} +1)(e_{j} +o_{j} )なので、
e_{j+1} =(k_{j+1} +1) (e_{j} +o_{j} )-o_{j+1}です。
したがって、kj+1 が偶数の時、
\begin{aligned}
e_{j+1} = & (k_{j+1} +1)(e_{j} +o_{j} ) -o_{j+1} \\
= & (k_{j+1} +1)(e_{j} +o_{j} ) \\
& - \frac{k_{j+1}}2e_j -(\frac{k_{j+1}}2+1)o_j \\
= & (\frac{k_{j+1}}2+1)e_j +\frac{k_{j+1}}2 o_j \\
= & \frac{k_{j+1}}2e_j +(\frac{k_{j+1}}2+1)o_j + e_j - o_j \\
= & o_{j+1} + e_j - o_j \geqq o_{j+1}
\end{aligned}が成り立ち、km+1 が奇数の時、
\begin{aligned}
e_{j+1} = & (k_{j+1} +1)(e_{j} +o_{j} ) -o_{j+1} \\
= & (k_{j+1} +1)(e_{j} +o_{j} ) \\
& -( \frac{k_{j+1} +1}2 ) (e_j +o_j) \\
= & ( \frac{k_{j+1} +1}2 ) (e_j +o_j) = o_{j+1}\\
\end{aligned}が成り立ちます。
kj+1 の値が何であっても
e_{j+1} \geqq o_{j+1}であることが示せたので、任意の 1 ≦ j ≦ m に対し、
e_{j} \geqq o_{j}が成り立ちます。
ゆえに
e =e_{m} \geqq o_{m} = oであり、
f(n) \geqq g(n)
です。
2026年東大 数学 第6問 小問3の解法
こいつはぱっと見、小問2よりは簡単そうな気がします。
3で割って2余る約数の数は、3で割って2余る素因数の指数の和が奇数になる組み合わせの数と、3で割って1余る素因数の指数の組み合わせの数の積です。
これが15だと言っているので、3で割って2余る素因数の指数の和が奇数になる組み合わせの数は15の約数です。4とか6とかになることはありません。
よってその値は、1,3,5,15 のいずれかです。それぞれにおいて、 f(n) がいくつになるか調べていきます。
なお、3で割って2余る素因数の指数の和が奇数になる組み合わせの数、および3で割って1余る素因数の指数の組み合わせの数が1,3,5,15になるケースはあり得ます。たとえば n = 5×714,55×74,59×72,529 の各場合です。
3で割って2余る素因数の指数の和の組み合わせ数が1のケース
まず3で割って2余る素因数の指数の和が1の場合です。この場合、3で割って2余る素因数は1つだけです。それを p1 と表記します。すると、 n の約数で3で割って2余るものは
p_1a_i,i=1,2,\cdots15
と表記できます。ここに a_i は3で割って1余る n の約数で、互いに異なります。
p1 の指数は1の場合と2の場合がありますが、p1 の指数が1の場合、 n の約数で3で割って1余る約数は
a_1,a_2, \cdots,a_{15}の15種類であり、したがって f(n) = 15 です。
p1 の指数が2の場合、 n の約数で3で割って1余る約数は
\begin{aligned}
& a_1,a_2, \cdots,a_{15}, \\
& p_1^2a_1,p_1^2a_2, \cdots,p_1^2a_{15}
\end{aligned}の30種類あります。したがって f(n) = 30 です。
3で割って2余る素因数の指数の和の組み合わせの数が3のケース
このとき、3で割って1余る素因数の指数の組み合わせの数、すなわち n の約数でかつ、3で割って1余る素因数だけでできているものは5つです。それを a_1,a_2,\cdots ,a_5 と表記します。
まず、3で割って2余る素因数が1つの場合です。それを p1 と表記するとき、指数の和の組み合わせが3になるのは p1 の次数 k1 が5か6の時です。
k1 = 5 のとき、 n の約数で3で割って1余る約数は
\begin{aligned}
& a_1,a_2, \cdots,a_{5}, \\
& p_1^2a_1,p_1^2a_2, \cdots,p_1^2a_{5}, \\
& p_1^4a_1,p_1^4a_2, \cdots,p_1^4a_{5}
\end{aligned}の15個です。
k1 = 6 のとき、 n の約数で3で割って1余る約数は
\begin{aligned}
& a_1,a_2, \cdots,a_{5}, \\
& p_1^2a_1,p_1^2a_2, \cdots,p_1^2a_{5}, \\
& p_1^4a_1,p_1^4a_2, \cdots,p_1^4a_{5}, \\
& p_1^6a_1,p_1^6a_2, \cdots,p_1^6a_{5} \\
\end{aligned}の20個です。
以上、3で割って2余る素因数が1つの場合は f(n)= 20 または 15 です。
次に3で割って2余る素因数が1つの場合です。それらを p1,p2 と表記し、それらの指数をそれぞれ k1,k2 と表記します。すなわち n = p_1^{k_1}p_2^{k_2} a です。ここに a は n の素因数のうち、すべての3で割って1余る素因数の積です。
p1 の指数と p2 の指数の和が奇数になるバリエーションを書き下してみると
| p1の指数 | p2の指数 |
|---|---|
| 1 | 0 |
| 0 | 1 |
| 2 | 1 |
| 1 | 2 |
| 3 | 0 |
| 0 | 3 |
| 3 | 2 |
| 2 | 3 |
なので、奇数になる組み合わせが3であるためには k1,k2 のが2、もう一方が1である必要があり、かつ十分です。
そこで k1=2,k2=1 とします。 このとき、 p1 の指数と p2 の指数の和が偶数になるバリエーションは
| p1の指数 | p2の指数 |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 0 |
の3種類です。
したがって n の約数で3で割って1余る約数の個数は f(n) は 3×5 = 15 です。
以上のようにして 3で割って2余る素因数の指数の和が5の場合、15の場合を考察していけば、 f(n) の取りえる値をすべて洗い出せますが、場合分けが大変そうなのと抜け漏れが出そうな気がします。
入試問題なのだから、もっと楽なやり方があるはずです。それを考えてみます。
たった一つの、冴えたやり方
というのは明らかに言いすぎですが(爆)、もう少し楽なアプローチを模索します。なお、この見出しのタイトルはジェイムズ・ティプトリー・ジュニアの小説から取っています。
小問2の数学的帰納法の証明の中で、なんか漸化式っぽい式
e_{j+1} = o_{j+1} +e_j - o_jというのが出てきました。変形すると
e_{j+1} - o_{j+1}= e_j - o_jです。
これが成り立つ十分条件が、 3で割って2余る素因数 pj+1 の指数 kj+1 が偶数であることです。
したがって、 n のすべての3で割って2余る素因数の指数が偶数のとき、
e-o =e_{m} - o_{m}= e_1 - o_1が成り立ちます。
ところで k1 が偶数の時、
e_1 =\frac{ k_1 }2 +1,o_1 = \frac{ k_1 }2であったので、
e_1 - o_1 = 1
です。ゆえに n のすべての3で割って2余る素因数の指数が偶数なら、
e-o= 1
が成り立ちます。
次に、 n の3で割って2余る素因数のうち少なくとも1つの指数が奇数の場合です。n の3で割って2余る素因数 p1,p2,…,pm の順序を必要なら入れ替えることによって、pm の指数が奇数であるとして一般性を失いません。
このとき、小問2で示した通り、 em-1 と om-1 の差が何であっても em = om が成り立ちます。すなわち
e=o
が成り立ちます。
以上、e = o か e = o + 1 のどちらかが成り立ち、かつどちらか一方しか成り立たないということはありません。
n の3で割って1余る素因数の指数の組み合わせの数を a と置くとき、
f(n) = ea,g(n) = oa
です。 g(n) = 15 なので o =1,3,5,15 のいずれかであり、 f(n) の取りえる値を整理すると以下の通りです。
| o | a | e | f(n)=ea |
|---|---|---|---|
| 1 | 15 | 1 | 15 |
| 2 | 30 | ||
| 3 | 5 | 3 | 15 |
| 4 | 20 | ||
| 5 | 3 | 5 | 15 |
| 6 | 18 | ||
| 15 | 1 | 15 | 15 |
| 16 | 16 |
以上、 f(n) の取りえる値は15,16,18,20,30 です。
解法のポイント

n の約数の個数というのは n の素因数の指数のバリエーションであることに気づくことが第一歩です。次いで、 2^2 \equiv 1 (\mod 3) であることから、 n の約数が3で割って2余るための必要十分条件が、約数を構成する素因数のうち3で割って2余るものの指数の和が奇数であることに気づくことが次のステップです。
その上で、 g(n) は3で割って2余る素因数の指数の和が奇数になる組み合わせの数と、3で割って1余る素因数の指数の組み合わせの数の積であることに気が付ければ、小問2を解くことができます。
あまり見慣れないタイプの問題なので、少し考えて方針が思いつけない場合は、小問2以降をすっぱりあきらめるのもアリです。
小問3は地道に場合分けしていっても解けると思いますが、手間暇がかかるのでより簡単に解く方法を模索したいところです。小問2の解き方がヒントになるので見逃さないようにしましょう。
