【ICPC模板】Miller-Rabin Primality Test(米勒-罗宾随机素性测试)

目录

Miller-Rabin Primality Test(米勒-罗宾随机素性测试)

静态素数证据表实现(非随机数实现)

使用Java大数类判断素数


Miller-Rabin Primality Test(米勒-罗宾随机素性测试)

静态素数证据表实现(非随机数实现)

函数MillerRabin(LL n, LL a)为一次米勒-罗宾测试结果,true表示测试数n有3/4的把握为素数,false表示n一定是合数。

调用bool isPrime(LL n)来判断数n是否为素数。

bool isPrime(LL n)中的素数表可根据需要增加或减少,增加素数表会使测试的准确率升高,但是测试时间会增长。

#include <iostream>

using namespace std;

typedef long long LL;

LL fastPowMod(LL base, LL p, LL mod) {
    LL ret = 1;
    base %= mod;
    do {
        if (p & 1) ret = ret * base % mod;
        base = base * base % 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值