合同式を使った余りの計算

大きなべき乗の余りを直接計算するのは大変です。 を 5 で割った余りを求めようとして、 を実際に計算するわけにはいきません。合同式を使えば、このような計算を効率的に行えます。

合同式の基本

で割った余りが等しいとき、 と書きます。合同式には次の性質があります。

加法

ならば

乗法

ならば

べき乗

ならば

特に重要なのは、計算の途中で余りを取ってよいという点です。これにより、数を小さく保ちながら計算を進められます。

基本的な解法

を 5 で割った余りを求めます。

まず、7 を 5 で割った余りは 2 なので です。

次に、 に注目します。

なので

よって、余りは 1 です。

繰り返し二乗法

指数が大きいときは、繰り返し二乗法が便利です。 を 7 で割った余りを求めます。

指数を 2 進法で表す:

を順に計算(余りを取りながら)

必要な項を掛け合わせる

よって、余りは 2 です。

周期性を利用する方法

べき乗の余りは周期的になることが多いです。 を 7 で割った余りの列を見てみましょう。

2
4
1
2
4
1

周期 3 で繰り返しています。 を 7 で割った余りは、 余り なので、 と同じです。

フェルマーの小定理との組み合わせ

が素数で の倍数でないとき、 が成り立ちます。

を 7 で割った余りを求めます。

は素数で、 の倍数でないので

なので

よって、余りは 2 です。

小さな指数

直接計算するか、周期を見つける

大きな指数

フェルマーの小定理や繰り返し二乗法を使う

合同式を使いこなせば、手計算でも非常に大きなべき乗の余りを求められます。