以下の内容はhttps://kiri8128.hatenablog.com/entry/2025/09/09/225217より取得しました。


平方数の末尾に同じ数字はいくつ続く?

ストーリー

ねこ:「 38^{2} = 1444 は末尾に同じ数字 43 個並んでるね。」
きり:「平方数で、末尾にもっとたくさん同じ数字が並ぶものあるかな?」
ねこ:「末尾が 0 のものは 10000^{2} = 100000000 のようにいくらでも長くできるね。」
きり:「 0 以外だとどうだろう?無限に長くできる?それとも最大値がある?」
ねこ:「気になるね。」
きり:「 10 進法以外で考えてみても面白そうだね。」
ねこ:「だね。やってみよう。」


なおこの記事はえびまさんの動画を参考に、議論を一般化したものです。




10 進法の場合

準備

ab で割った余りを a \bmod b と書くよ。
また平方数 x^{2}45 で割った余りの制約は以下のとおりです *1

  • x^{2} \equiv 0,\ 1 \pmod 4
  • x^{2} \equiv 0,\ 1,\ 4 \pmod 5

これを使って、 10 進法で末尾に同じ数字がいくつまで連続して現れるか調べよう。

平方数の末尾に現れない数字

5 で割った余りに注目すると、平方数の下 1 桁が 2,\ 3,\ 7,\ 8 になることはないことが分かる。

平方数の末尾に1つまで連続して現れる数字

11 \equiv 55 \equiv 99 \equiv 3 \pmod 4 および 66 \equiv 2 \pmod 4 より、 1,\ 5,\ 6,\ 9 は平方数の末尾に高々 1 つしか連続して現れないことが分かる。なお、百の位以上は、 4 で割った余りに影響しないことに注意してね。
1 つ現れる例は 1^{2}=1,\ 5^{2} = 25,\ 6^{2}=36,\ 3^{2}=9 があるよ。

平方数の末尾に3つまで連続して現れる数字

4444 \equiv 12 \pmod {16} つまり 1111 \equiv 3 \pmod 4 より 4 は平方数の末尾に高々 3 つしか連続して現れないことが分かる。なお、一万の位以上は、 16 で割った余りに影響しないことに注意してね。
3 つ現れる例は 38^{2}=1444 があるよ。

結論

10 進法では末尾に 3 個同じ数字が続くのが最大で、例えば 38^{2}=1444 がそのひとつ。

定式化

ここから 10 進法以外に拡張する。まずは記号を定義する。

n \ge 2 および 0 \le a \lt n に対し *2f(n,\ a) を、 n 進法で下 k 桁がすべて a になるような平方数が存在するような k の最大値とする。ただし、そのような k が存在しないときは 0 、無限に大きくできるときは \infty とする。また、 g(n) = \displaystyle\max_{1\le a \lt n} f(n,\ a) とする。

前節の議論から、 10 進法の結果は以下のように書ける。


f(10,\ a) =
\begin{cases}
0 & (a=2,3,7,8) \\
1 & (a=1,5,6,9) \\
3 & (a=4)
\end{cases}
g(10) = 3

中国剰余定理

S_{k} = 1 + n + \cdots + n^{k-1} = \displaystyle\frac{n^{k}-1}{n-1} とする。このとき、 n 進法で下 k 桁がすべて a になることがある条件は、

x^{2} \equiv aS_{k} \pmod {n^{k}}

となる整数 x が存在することである。

n素因数分解n=\displaystyle\prod {p_{i}}^{e_{i}} とすると、この条件は

 \exists{x} \in \mathbb{Z},\ \forall{i},\  x^{2} \equiv aS_{k} \pmod {{p_{i}}^{e_{i} k}}

が成立することと同値である。

無限に長く続く条件

n,\ a を固定したとき、いくらでも長くできる条件は次のように表せる。

 f(n,\ a) = \infty \iff \forall k \ge 1,\ \exists{x} \in \mathbb{Z},\ \forall{i},\  x^{2} \equiv aS_{k} \pmod {{p_{i}}^{e_{i} k}}

あるいは中国剰余定理より順番を入れ替えて以下のようにも書ける。
 f(n,\ a) = \infty \iff \forall{i},\  \forall k \ge 1,\ \exists{x} \in \mathbb{Z},\ x^{2} \equiv aS_{k} \pmod {{p_{i}}^{e_{i} k}} \qquad (★)

以下この条件を満たす a が存在する n の条件を求める。

素数 p\ |\ n の条件

p\ |\ n のとき、

S_{k} \equiv 1 \pmod p

が任意の k \ge 1 について成り立つので、★の条件は v_{p}(a) が偶数で、かつ \displaystyle\frac{a}{p^{v_{p}(a)}} が平方剰余であることと言える。
ここで v_{p}(a)pa を割り切る回数である *3
特に a=1 とすれば任意の奇素数 p に対して★の条件を満たす。

素因数 2 の条件( n が偶数のとき)

p=2 について★が成立するのは、 v_{2}(a) が偶数で、かつ十分大きい k に対して \displaystyle\frac{a}{2^{v_{2}(a)}} \cdot S_{k} \equiv 1 \pmod 8 であることと同値。

実は S_{k}k \ge 3 のとき次のように書ける。


S_k \equiv
\begin{cases}
1 \pmod{8} & (n \equiv 0 \pmod{8}) \\
5 \pmod{8} & (n \equiv 4 \pmod{8}) \\
7 \pmod{8} & (n \equiv 2 \pmod{8}) \\
3 \pmod{8} & (n \equiv 6 \pmod{8})
\end{cases}

よって、★の条件は以下のように言える。なお \bmod 8 で奇数はそれ自身の乗法逆元となることに注意。


a_{\mathrm{odd}} := \frac{a}{2^{v_2(a)}} \equiv
\begin{cases}
1 \pmod{8} & (n \equiv 0 \pmod{8}) \\
5 \pmod{8} & (n \equiv 4 \pmod{8}) \\
7 \pmod{8} & (n \equiv 2 \pmod{8}) \\
3 \pmod{8} & (n \equiv 6 \pmod{8})
\end{cases}

無限になる例

前節の考察から、 n が奇数のときや 8 の倍数のときは a=1 とすれば無限に大きくできることが分かります。つまり、このとき f(n,\ 1) = \infty です。

例として 3 進法で考えてみましょう。たとえば

28177 ^ {2} = 793943329

ですね。これを 3 進法で表すと
(1102122121_{3})^2 = 2001022221111111111_{3}

となり、右辺の下 10 桁が 1 で続きました。この後も、左辺の該当の桁をいじって 1 桁ずつ伸ばしていけることが分かります。開平法の筆算(を左右逆に行う)の要領で順に決めていくと考えても良いです。

n が十分大きいとき

奇数と 8 の倍数のときは無限であることが証明できたので、あとは 2^{e}P \ (1\le e \le 2,\ Pは奇数) の形のもののみ。
実は n が十分大きいときは、必ず f(n,\ a) = \infty となる a \lt x が存在することが分かる。ここでは証明のイメージを理解するため、 P=p素数の場合を考える。このとき、 kP \le y \lt (k+1)P \ (k=0,\ 1,\ \cdots,\ 7) のそれぞれの区間に奇数の平方数が存在することが言えれば十分。
\displaystyle\frac{31^{2}}{33^{2}} \gt \frac{7}{8} から、これは 8p \gt 33^{2} つまり p \ge 137 程度以上なら成り立つ。
*4

結果が有限になる n

実際にプログラムなどで調べて見ると、有限の長さまでしか伸ばせないのはちょうど次の 9 個に限られる。

n=2,\ 4,\ 6,\ 10,\ 12,\ 20,\ 28,\ 42,\ 60

例えば n=28 の場合、 \bmod 8 での議論から考えられる a_{odd}a=5,\ 13,\ 213 種類、 a=5,\ 13,\ 21,\ 20 の候補があるが、 a=217 の指数が奇数なのでダメ、その他も \bmod 7 で平方非剰余なので条件を満たさない。他の n に対しても同様に条件を満たさないことが確認できる。
なお、各 n について、 n 進法での平方数の末尾に続く数字の最大数およびそれを満たす最小の例は以下のとおり。

n 最大長 x (十進表記) x^{2} (十進表記) xn進表記 *5 x^{2}n進表記)
21111_{2}1_{2}
41111_{4}1_{4}
63462116114_{6}13444_{6}
10338144438_{10}1444_{10}
1221419612_{12}144_{12}
203356126736(17,16)_{20}(15,16,16,16)_{20}
28312361527696(1,16,4)_{28}(2,13,16,16,16)_{28}
425554081230700597619344(1,32,33,2,4)_{42}(3,7,7,3,16,16,16,16,16)_{42}
603524274576(8,44)_{60}(1,16,16,16)_{60}

これにより、各 n について末尾に続く非零の数字の最大長 g(n) は以下のとおりであることが分かった。


g(n) =
\begin{cases}
1 & (n=2,\ 4) \\
2 & (n=12) \\
3 & (n=6,\ 10,\ 20,\ 28,\ 60) \\
5 & (n=42) \\
\infty & (\mathrm{Otherwise})
\end{cases}

おわりに

ねこ:「難しかったね。」
きり:「有限の長さまでしか伸ばせないのが 9 個しかないというのは非自明な結果で面白かった。」
ねこ:「ありそうな問題設定だけど先行研究あるのかな。」
きり:「簡単に調べてみたけど、ここまで体系的にやっているのは見つからなかったよ。」
ねこ:「OEIS にもこの 9 個の整数が連続する数列は登録されてなさそうだね。」
きり:「証明も思ったより大変だった。」
ねこ:「証明できたぜみたいな顔してるけど、範囲評価のところで P素数じゃない場合の議論を誤魔化してなかった?」
きり:「ううう」


End

*1: 前者は  \bmod 4(2k)^{2} \equiv 0,\ (2k + 1)^{2} \equiv 1 であることから、後者は \bmod 5k^{2} \equiv 0,\ (k\pm 1)^{2} \equiv 1,\ (k\pm 2)^{2} \equiv 4 であることから分かります。

*2:a=0 の場合は \infty であることは明らかなので、本稿では議論には含めない。定義としては外すと不自然なので含めている。

*3:ap 進付値とも言える

*4:P素数でない場合も平方数の存在証明の評価の方法は同様にできるが、 \mathrm{gcd}(P,\ x)1 でないものを選んでしまう可能性もあるので厳密に示すには工夫が必要。本記事では厳密な証明は諦める。

*5: 20 進法以上は各桁の数字に 10 以上が現れるため、カンマ区切りで表記している




以上の内容はhttps://kiri8128.hatenablog.com/entry/2025/09/09/225217より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14