根据RL和LR算法原理,编写一个底数、指数、模数均为32比特的模幂实现算法。(RL一个,LR一个)
时间: 2024-03-21 12:43:11 浏览: 153
RL算法:
```python
def mod_pow_RL(a, b, m):
res = 1
while b > 0:
if b % 2 == 1:
res = (res * a) % m
a = (a * a) % m
b //= 2
return res
```
在该代码中,变量 a 表示底数,b 表示指数,m 表示模数,变量 res 表示当前的结果。当 b 为奇数时,将 res 乘上 a 并取模;否则,将 a 平方取模。最后返回 res 的值即可。
LR算法:
```python
def mod_pow_LR(a, b, m):
res = 1
while b > 0:
if b & 1:
res = (res * a) % m
a = (a * a) % m
b >>= 1
return res
```
在该代码中,变量 a 表示底数,b 表示指数,m 表示模数,变量 res 表示当前的结果。当 b 的二进制位为 1 时,将 res 乘上 a 并取模;否则,将 a 平方取模。最后返回 res 的值即可。
阅读全文