趣书网

阅读记录  |   用户书架
上一章
目录 | 设置
下一章

第一百四十八章 米勒拉宾素性测试(计算数论)(1 / 1)

加入书签 | 推荐本书 | 问题反馈 | 内容报错

对于一个数n,如果想要判断它是否为素数,常规的方法为试除法。即,让n依次除以2到sqrt(n)以内的整数。如果有出现除尽的情况,则为合数。

该方法的时间复杂度为o(sqrt(n))在面对n为长整型的时候有可能超出时间要求。因此普遍采用米勒拉宾算法进行素性判定。

在此之前介绍一种伪素数判定方法——小费马定理。

但没有米勒拉宾素性测试快。

米勒拉宾素性测试是:

判断一个数p是否为素数

p首先得为大于等于2的正整数才有可能为素数,

首先判奇偶,若为偶数只有2为素数,

若为奇数(这里可以考虑去掉 3甚至5的倍数),则先求出d。

对于每一个底a,让d不断乘以2直到为(p-1)\/2,

在此过程中(包括原本的d与d=(p-1)\/2时的情况),

设t为 a的d次方模p的余数,

(1)当t=-1时跳出,声明p有可能为素数

(2)当t=1时,若d为奇数,跳出声明p有可能为素数,否则跳出声明p必为合数

(3)当d=(p-1)\/2时跳出,声明p必为合数。

上一章
目录
下一章
A- 18 A+
默认 贵族金 护眼绿 羊皮纸 可爱粉 夜间