数论——素数模的逆(c/c++实现)
素数模的逆
又是可恶的密码学。
每天疯狂求逆,天天辗转相除法,实在是腻了。
因此有了以下代码、、
#include <vector> #include <cmath> #include <map> using namespace std; int inverse(int x, int mod){ // 计算x模mod的逆 要求模数为素数 使用费马小定理 if(x>mod) x %= mod; int i(1),j(0); map<int,int> temp; while(i!=mod-2){ temp[i+j] = (int)pow(x,i+j); temp[i+j]%= mod; i += j; if(2*i > mod-2){ for(j=1;j<=i;j*=2) if(i+j > mod-2){ j /= 2; break; } } else{ i *= 2; j = 0; } } return temp[mod-2]; } int main(){ int x = 2; int mod = 19; printf("%d\n",inverse(x,mod)); }
作者:Mengjie Ye
出处:https://ymj68520.cnblogs.com/
版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。如您有任何疑问或者授权方面的协商,请 .
如果,您希望更容易地发现我的新文章,不妨点击一下绿色通道的【关注我】。
如果您觉得阅读本文对您有帮助,请点击一下右下方的推荐按钮,您的推荐将是我写作的最大动力!版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。如您有任何疑问或者授权方面的协商,请 .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律