关于求解p^x mod q的问题

本文介绍了一种解决大数模运算的方法,特别是当底数为素数且指数为合数时的模运算技巧。通过将指数分解并利用二项式定理进行简化,最终将问题转化为易于解决的小规模模运算。

如题,其中p和q都是素数,而x是数值十分大的合数,则p^x mod q的一种解法可为:

第一步,可把x写成a*b的形式,即p^x=(p^a)^b,其中p^a是可以通过简单的人为计算得出的并且满足p^a>q,设c=p^a,则p^x通过降次得到c^b;

第二步,把c展开,写成c=dq+e的形式,则c^b=(dq+e)^b,由二项式定理可知c^b≡e^b(mod q),则问题转化成了求解e^b(mod q)的问题;

第三步,用迭代的思想,重复第一步和第二步,直到p和x都为素数,这时候就很容易得解了。

例子:求解2^100 mod 7。

解:2^100=16^25=(7*2+2)^25,则2^100=(7*2+2)^25≡2^25(mod 7)

2^25=32^5=(7*4+4)^5,则2^25=(7*4+4)^5≡4^5(mod 7)

4^5=1024,1024=146*7+2,即1024≡2(mod 7)

所以,2^100≡2(mod 7),即2^100 mod 7=2。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------

若有不足之处还请大家批评指正,谢谢大家!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值