扩展欧几里得算法求逆元算法结果是负数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩展欧几里得算法求逆元算法结果是负数相关的知识,希望对你有一定的参考价值。

3533的模11200逆元结果是-4603
rsa加密算法
p=101 q=113
n=11413
d=3533
d模11200的逆元是负数,怎么加密解密啊

参考技术A 写一句
d=(d%MOD+MOD)%MOD;
转化成正数就可以了本回答被提问者采纳

总结——数论:乘法逆元

零 乘法逆元

  对于缩系中的元素,每个数a均有唯一的与之对应的乘法逆元x,使得 ax≡1(mod n) 。
  一个数有逆元的充分必要条件是 gcd(a,n)=1 ,此时逆元唯一存在。
  逆元的含义:模 n 意义下,1个数 a 如果有逆元 x ,那么除以 a 相当于乘以 x 。

 

一 扩展欧几里得求逆元

  将方程 ax=1(mod m) 转化为 ax+my=1 ,套用求二元一次方程的方法,用扩展欧几里得算法求得一组 x0,y0 和 gcd。当 gcd=1 时逆元存在,调整 x0 在 [0,m-1] 的范围内即可。时间复杂度为O(ln n)。

 1 typedef  long long ll;
 2 void extgcd(ll a,ll b,ll& d,ll& x,ll& y){
 3     if(!b){ d=a; x=1; y=0;}
 4     else{ extgcd(b,a%b,d,y,x); y-=x*(a/b); }
 5 }
 6 ll inverse(ll a,ll n){
 7     ll d,x,y;
 8     extgcd(a,n,d,x,y);
 9     return d==1?(x+n)%n:-1;
10 }

 

二 费马小定理求逆元

 



以上是关于扩展欧几里得算法求逆元算法结果是负数的主要内容,如果未能解决你的问题,请参考以下文章

素数定理-欧几里得算法-乘法逆元

求逆元的四种算法(拓欧费马小线性推欧拉)

用C语言编制的求模逆元的扩展欧几里德算法,只要能基本上实现这个功能就行

暑期学习日记二—利用扩展欧几里得求逆元

【总结】逆元的求法

常用数论