您现在所在的位置:>首页 > 生活 > 正文
判断一个数是否为素数(如何快速判断一个数是素数)
发布时间:2022-09-26 15:42   浏览量:29

根据数的不同范围和要求,我总结主要有三种常用的方法判断一个数是否是素数

一. 一般方法

直接判断在sqrt(n)范围内有没有整数能整除n,如果有则不是素数,否则就是素数。

但这种方法比较暴力,如果n过大是不行的,而且一个一个去计算太慢了,如果我要找出10000000以内的所有素数,那计算量是相当大,效率不高。

二. 基于线性筛法

如果要找出10000000以内的所有素数,那么就要使用线性筛法了。基本原理是:先把所有整数列出来,然后把2的倍数全部剔除,然后是三的,以此类推,遍历所有素数,把倍数全部划去。划去的是合数,剩下的就是素数了。

那么,如果n特别大的时候呢,比如n=10^12,又怎么判断呢? 这时候就需要Miller-Rabin素数测试方法了。

三. Miller-Rabin素数测试

它是基于二次探测定理进行判断的,定理描述如下

代码实现比较长,截图在下面

一般情况下第二种和第三种方法用得最多。

标签:
发自己照片配什么话(有没有适合发自拍时配的句子) 蝙蝠飞进卧室有何象征(我出生的时候房间里飞进了一只蝙蝠,这 菏泽是几线城市(菏泽市房价又下降了还能再入手一套吗?有潜力 关于爱情的英语作文(能用英语概括一下书虫系列读物《爱情与金 自拍说说心情说说(自拍的文案说说) 声入人心第一季成员(声入人心36位谁最火) 北大青鸟是正规学校吗(青鸟学校是正规的吗) 教师应聘简历(教师招聘都需要什么材料) 比较容易考的二本大学(300多分的二本大学有哪些) 买卖账号平台哪个好(游戏交易平台哪个好?想找个正规的平台买