质数相关
来源:互联网 发布:变性手术知乎 编辑:程序博客网 时间:2024/04/30 00:33
Miller-Rabin质数测试
费马小定理:对于质数
p 和任意整数a ,有ap≡a(mod p) (同余)。反之,若满足ap≡a(mod p) ,p 也有很大概率为质数。
将两边同时约去一个a ,则有ap−1≡1(mod p) 二次探测定理:如果
p 是奇素数,则x2≡1(mod p) 的解为x≡1 或x≡p−1(mod p)
bool MillerRabin(int64_t n){ vector<int> test{ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37 };//n<2^64 if (n <= 2) return n == 2 ? true : false; if (n % 2 == 0) return false;//偶数情况 int t = pow(2, 10); int64_t u,a,x,y; // 先找到的最小的a^u,再逐步扩大到a^(n-1) u = n - 1; // u表示指数 while (u % 2 == 0) u = u / 2; for (size_t i = 0; i < test.size(); i++) { a = test[i]; if (a >= n) break;//测试数为[1,n)之间 //if ((pow(a, n - 1) % n) != 1) // return false; x = pow_mod(a, u,n); while (u < n) { // 依次次检查每一个相邻的 a^u, a^2u, a^4u, ... a^(2^k*u)是否满足二次探测定理 y = pow_mod(x, 2, n); // 二次探测定理 if (y == 1 && x != 1 && x != n - 1) // 若y = x^2 ≡ 1(mod n) // 但是 x != 1 且 x != n-1 return false; x = y; u = u<<1; } if (x != 1) // Fermat测试 return false; } return true;}
0 0
- 质数相关
- 质数相关
- 质数相关
- hihoCoder 1158 质数相关
- hihocoder 1158 质数相关
- hihocoder1158 质数相关
- 编程之美 质数相关
- hihocoder1158质数相关,最大独立集
- 质数
- 质数
- 质数
- 质数
- 质数
- 质数
- 质数
- 质数
- 质数
- 质数
- 【占坑】POJ 1328做题笔记 #贪心#
- linux下如何安装R
- 安卓逆向系列教程(三)静态分析工具
- C语言连接MySQL数据库实例
- jpcap报错:no jpcap in java.library.path
- 质数相关
- POJ 2109做题笔记#贪心#
- 开启VNC的时候mesg: ttyname failed: Inappropriate ioctl for device
- 数列排序
- 新年重磅! flowchart可视化流程图编程语言发布
- Java结构型设计模式-适配器(一)
- 伸展树(排列变换,uva 11922)
- 字符串空格处理
- Gradle出现Could not create task of type 'DependencyManagementReportTask'