二次剩余

给定两个数 n,P , P 为一个质数,且n<P,求一个 x ,使得x2n(mod P)

下面所有的运算都在 mod P 意义下进行。

首先我们要判断是否有解。

根据勒让德记号,我们有 nP12=±1 ,并且上述问题有解当且仅当 nP12=1

a ,满足w=a2n w 对于P不是二次剩余。这个 a 直接随机就好了。

那么最终我们有x=(a+w)P+12

问题是 w 不存在,我们将 w 如同虚数 i 一样设定,那么由于最终x是一个实数,所以直接当虚数来做快速幂最终取实根即可。

证明:
x=(a+w)P+12
x2=(a+w)P+1=(a+w)P(a+w)

由二项式定理得:
(a+w)P=Pk=0CkPak(w)Pk

又由于当 0<k<P 时, CkP mod P=0 ,所以

(a+w)P=aP+(w)P

又由费马小定理 aP1=1,wP12=wP1=1

所以

(a+w)P=aw

所以 x2=(aw)(a+w)=a2w=n

得证

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值