| 合同式 |
[平方を繰り返して法Mのべき乗を計算する。] |
|
|
|
|
|
| an(mod
M)の計算 |
|
|
|
| a |
n |
M |
|
乗数nを2のべき乗の和に分解する。 |
|
2進数表示 |
| 7 |
100 |
13 |
2^6 |
64 |
n |
100 |
36 |
1 |
*2^6 |
64 |
→ |
1100100 |
|
↓ |
|
2^5 |
32 |
|
36 |
4 |
1 |
*2^5 |
32 |
|
|
100 |
|
2^4 |
16 |
|
4 |
4 |
0 |
*2^4 |
16 |
|
| 7 |
(mod13) |
2^3 |
8 |
|
4 |
4 |
0 |
*2^3 |
8 |
|
|
2^2 |
4 |
|
4 |
0 |
1 |
*2^2 |
4 |
|
|
2^1 |
2 |
|
0 |
0 |
0 |
*2^1 |
2 |
|
|
7100の分解 |
2^1 |
1 |
|
0 |
0 |
0 |
*2^1 |
1 |
|
|
(mod13) |
|
100= |
26+25+22 |
|
| 7^21= |
10 |
@ |
|
7の100乗 |
|
|
|
| 7^22= |
9 |
A |
|
7の100乗 |
乗数: |
100 |
|
26+25+22 |
|
|
| 7^23= |
3 |
B |
|
の計算 |
7 |
(mod13)= |
7 |
(mod13) |
|
|
| 7^24= |
9 |
C |
|
|
|
|
|
| 7^25= |
3 |
D |
|
|
|
= |
9*3*9= |
243(mod 13)= |
9 |
← 答え |
|
| 7^26= |
9 |
E |
|
|
|
|
↑ |
|
|
A以降は前の項の答えを2乗して(mod13)をすることにより、計算が簡略化でき 数の増大も抑えることができる。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|