加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

求模的逆元

(2010-06-08 23:29:57)
标签:

密码学

it

分类: 计算机编程与工具软件
#include <iostream>

using std::cin;

using std::cout;

using std::endl;

int Euclid(int,int,int,int);

int main()
{
    int n,u;
    cout<<"please input n and u"<<endl;
    cin>>n;
    cin>>u;
    cout<<(Euclid(n,u,0,1) + n) % n<<endl;
    system("pause");
    return 0;

}
int  Euclid(int n, int u, int b1, int b2)
{

    int q; //商
    q = n / u;
    int r; //余数
    r = n % u;
    if(0 != r)
    {
        int t;//中间变量
        n = u;
        u = r;
        t = b2;
        b2 = b1 - q * b2;
        b1 = t;
        return Euclid(n,u,b1,b2);
    }
    else
    {
        if(1 != u)
            cout<<"Error"<<endl;
        else
            return b2;
    }
    return 0;
  
注意:比如求13模35的逆元,须先输入35再输入13.本人只测试了这组数据。

0

阅读 收藏 喜欢 打印举报/Report
前一篇:棋盘加密
后一篇:明天发RSA代码
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有