更新:2025/03/25

京都大学(理系)2025年度数学第2問解答解説

問題はご自身で探してください。

1. 解説

3を法としたとき、ある整数kが3で割り切れないときに、合同式は

$$k^2 \equiv (\pm 1)^2 \equiv 1 \pmod{3} $$

したがって、\( k^6 = (k^2)^3 \equiv 1^3 \equiv 1 \pmod{3} \) および \( k^4 = (k^2)^2 \equiv 1^2 \equiv 1 \pmod{3} \) です。

もし \(x\) と \(y\) の両方が3で割り切れなければ、$x^6 \equiv 1,\quad y^4 \equiv 1 $となるので

\[ x^6+y^4\equiv 2 \pmod{3}\]

一方、右辺 \(9z^2\) は3の倍数であるため、

\[ 9z^2\equiv 0 \pmod{3} \]

よって合同式は成立せず、少なくとも \(x\) と \(y\) のいずれも、もしくは両方とも3の倍数でなければならないことが分かります。

また、片方だけが3の倍数の場合も合同式は成立しないので、\(x\) と \(y\) は必ず3の倍数でなければなりません。

\(x\) と \(y\) が3の倍数であることから、

a,bを任意の正の整数として、$x = 3a,\quad y = 3b$と置きます。

\[ x^6 = (3a)^6 = 3^6a^6 = 729a^6,\quad y^4 = (3b)^4 = 3^4b^4 = 81b^4 \]

これを元の式に代入すると、

\[ 729a^6 + 81b^4 = 9z^2\]

両辺を9で割ると、 \[ 81a^6 + 9b^4 = z^2 \tag{1} \]

式 (1) の右辺 \(z^2\) は左辺が9の倍数であることから、\(z\) も3の倍数と考えられます。

よって、cを任意の正の整数として、$z = 3c$ と置くと、\(z^2 = 9c^2\) となります。

式 (1) に代入し、 \[ 81a^6 + 9b^4 = 9c^2\]

両辺をさらに9で割ると、

\[ 9a^6 + b^4 = c^2 \tag{2} \]

$a\geq 1,b\geq 1$より、$c^2\geq 10$であることがわかります。cが整数になるように小さい平方数から試していきます。

[1]$c^2=16$であるとき、

$$9a^6 + b^4 =16$$

a=1であるとき、$b^4=7$となるので不適。

a>1では、$b^4<0$となるので不適。

[2]$c^2=25$であるとき、

$$9a^6 + b^4 =25$$

a=1であるとき、$b^4=16$となるので$b=2$。

したがって、求める \(N\) は$z=3\times 5=15$のときであるから、

\[ N = 9z^2 = 9\cdot15^2 = 9\cdot225 = 2025\]

正の整数 \(N\) の最小値は 2025 である。


aが明らかに大きくなることに着目するのが重要ですね。昔に3を法とする整数問題があったような。

2. 補足

式 (2) \[ c^2 = 9a^6 + b^4 \] の最も小さい正の整数解を求めるため、まず \(a = 1\) と置いて、代入して求めることもできます。すると、 \[ c^2 = 9\cdot1^6 + b^4 = 9 + b^4. \] \(b\) の最小値は1ですが、

  • \(b = 1\) のとき:\(c^2 = 9 + 1 = 10\) となり平方数ではありません。
  • \(b = 2\) のとき:\(c^2 = 9 + 16 = 25\) となり、これは平方数で \(c = 5\) です。

したがって、

\[ a = 1,\quad b = 2,\quad c = 5. \]

置換 \(x = 3a,\; y = 3b,\; z = 3c\) より、

\[ x = 3,\quad y = 6,\quad z = 15. \]

3. 関連

任意の正の整数 \( k \) について、\( k \) が3で割り切れないとき、フェルマーの小定理から

\[ k^2 \equiv 1 \pmod{3} \]

が成り立つことがわかります。

4. プログラムから見た問題

4.1. 方針

  • 小さな \(x, y\) の組み合わせについて、 \(x^6 + y^4\) を計算する。
  • それが 9で割り切れる(すなわち、\(N = x^6 + y^4\) が9の倍数)なら、 \[ z^2 = \frac{x^6 + y^4}{9} \] を求め、これが平方数(=整数の2乗)なら、候補として採用。
  • 候補の中から、最小の \(N = 9z^2\) を選ぶ。

4.2. Python コード

import math

# 最小値探索用の初期値(十分大きく)
min_N = float('inf')
min_x = min_y = min_z = None

# 探索範囲(x, y が小さい方が N も小さくなる可能性が高い)
for x in range(1, 100):
    x6 = x ** 6
    for y in range(1, 100):
        y4 = y ** 4
        total = x6 + y4

        if total % 9 != 0:
            continue  # 9で割れないなら無視

        z_squared = total // 9
        z = int(math.isqrt(z_squared))
        if z * z == z_squared:  # z² が完全平方数か?
            N = 9 * z_squared
            if N < min_N:
                min_N = N
                min_x, min_y, min_z = x, y, z

print(f"最小の N = {min_N}")
print(f"x = {min_x}, y = {min_y}, z = {min_z}")

 

4.3. 出力結果

4.4. 2025以外の解の候補

import math

results = []

# 適度な範囲で探索(大きくすると時間がかかる)
for x in range(1, 50):
    x6 = x ** 6
    for y in range(1, 50):
        y4 = y ** 4
        total = x6 + y4

        if total % 9 != 0:
            continue  # 9で割り切れないものは無視

        z_squared = total // 9
        z = int(math.isqrt(z_squared))
        if z * z == z_squared:  # 完全平方数ならOK
            N = 9 * z_squared
            results.append((N, x, y, z))

# N の小さい順にソートして表示
results.sort()

print("見つかった候補(N = x^6 + y^4 = 9z^2):")
for N, x, y, z in results[:10]:  # 最初の10個
    print(f"N = {N}, x = {x}, y = {y}, z = {z}")

PR