公钥密码之RSA密码算法扩展欧几里德求逆元!!

来源:互联网 发布:淘宝苹果组装机 编辑:程序博客网 时间:2024/04/30 15:01

 扩展欧几里得求逆元


    实话说这个算法如果手推的话问题不大,无非就是辗转相除法的逆过程,还有一种就是利用扩展欧几里德算法,学信安数学基础的时候问题不大,但现在几乎都忘了,刷题的时候也是用kuangbin博主全国通用的模板,代码十分简洁,但并没有理解其原理,学的时候也只了解了个大概。

   来看代码吧:

#include<bits/stdc++.h>using namespace std;int E_GCD(int a,int b,int &x,int &y){    if(!a&&!b) return -1;    if(!b)    {        x=1,y=0;        return a;    }    int d=E_GCD(b,a%b,y,x);    y-=a/b*x;    return d;}int main(){    int a,n;    while(~scanf("%d%d",&a,&n))    {        int x,y;        int k=E_GCD(a,n,x,y);        printf("%d\n",(x+n)%n);    }    return 0;}


0 1
原创粉丝点击