平方-乘算法与Miller-Rabin素性测试算法
平方-乘算法
代码实现
a=19244;h=17;n=221
a=input("a^h(mod n)\na");h=input("h");n=input("n")
h=int(h);a=int(a);n=int(n)
H=bin(h)
z=a
for i in range(3,H.__len__()):
if(H[i]=='1'):
a=(a*a)%n
a=(a*z)%n
if(H[i]=='0'):
a=(a*a)%n
print(a)
测试用例






Miller-Rabin素性测试算法
代码实现
#include <iostream>
#include <cmath>
using namespace std;
int modpow(int base, int exp, int mod) {
int cnt = 1;
base %= mod;
while (exp > 0) {
if (exp % 2 == 1) {
cnt = (cnt * base) % mod;
}
exp >>= 1;
base = (base * base) % mod;
}
return cnt;
}
bool MR(int n, int a) {
if (n <= 1 || n == 4) {
return false;
}
if (n <= 3) {
return true;
}
int d = n - 1;
while (d % 2 == 0) {
d /= 2;
}
int x = modpow(a, d, n);
if (x == 1 || x == n - 1) {
return true;
}
while (d != n - 1) {
x = (x * x) % n;
d *= 2;
if (x == 1) {
return false;
}
if (x == n - 1) {
return true;
}
}
return false;
}
int main() {
int n, a;
n=2017,a=19;
cout<<"待测正整数为"<<n<<" 基数为"<<a<<endl;
if (MR(n, a)) {
cout << n << " 是素数" << endl;
} else {
cout << n << " 不是素数" << endl;
}
return 0;
}
测试用例






【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具