社区
数据结构与算法
帖子详情
判断一个数是质数最快的方法?为什么?
code-artist
2010-07-18 07:49:22
不明白。为什么,望指教
/**
n>=3 and n is odd.
*/
int isPrime(int n)
{
int k, upperBound=n/2;
for(k=3; k<=upperBound; k+=2)
{
upperBound=n/k;
if(n%k==0)
return 0;
}
return 1;
}
...全文
4715
46
打赏
收藏
判断一个数是质数最快的方法?为什么?
不明白。为什么,望指教 /** n>=3 and n is odd. */ int isPrime(int n) { int k, upperBound=n/2; for(k=3; k<=upperBound; k+=2) { upperBound=n/k; if(n%k==0) return 0; } return 1; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
46 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
h2952220
2012-11-16
打赏
举报
回复
见到了很多个算法的名字……但是都没见到具体的算法步骤……
andy哥
2012-04-30
打赏
举报
回复
[Quote=引用 44 楼 的回复:]
如果要计算合数的个数是必须要判断到根号n,直接到n就错了。像6,除了个2算1个,除了个3也算1个。
[/Quote]
楼主有没有考虑过根号n,人家是上取整呢。。。
小白晒太阳
2012-03-07
打赏
举报
回复
如果要计算合数的个数是必须要判断到根号n,直接到n就错了。像6,除了个2算1个,除了个3也算1个。
michunyingzheCSDN
2011-05-30
打赏
举报
回复
判断一个数是质数最快的方法?
for (k = 3; k <= upperBound; k += 2)
{
upperBound = n / k;
if (n % k == 0)
return 0;
}
换成 if(n%k!=0)
这样应该也行吧
zyjpjl
2010-08-09
打赏
举报
回复
AR素数检测是什么?可否详细讲一下。
[Quote=引用 40 楼 njwangchuan 的回复:]
其实这个问题很复杂
AR素性检查,比上面提到的方法都快,都缺点是不能给出其因子,若判断一个数是素数,该方法所能给出的全部信息就是:此数不是素数,仅此而已
[/Quote]
njwangchuan
2010-08-09
打赏
举报
回复
其实这个问题很复杂
AR素性检查,比上面提到的方法都快,都缺点是不能给出其因子,若判断一个数是素数,该方法所能给出的全部信息就是:此数不是素数,仅此而已
绿色夹克衫
2010-08-09
打赏
举报
回复
我也不了解AR检测是什么,不过楼上的回复其实是有些不严谨的,比如不能给出其因子,如果是素数就不存在什么因子,另外这个检测相信也不是一个确定性的检测,大概跟Rabin-Miller类似,复杂度上也不可能低于log(n)。
[Quote=引用 41 楼 zyjpjl 的回复:]
AR素数检测是什么?可否详细讲一下。
[/Quote]
zyjpjl
2010-08-08
打赏
举报
回复
你那是只测试一个数字,注意我指的是这几个数字都要测试……
FancyMouse
2010-08-08
打赏
举报
回复
唔。引用错数字了。刚才那个是测试到17的时候的最小反例。只测试到13的话最小反例是3,474,749,660,383。比maxint32要大多了,比maxint64要小多了。
FancyMouse
2010-08-08
打赏
举报
回复
[Quote=引用 33 楼 zyjpjl 的回复:]
判断素数的最快算法……我也不知道,只知道两种比较快的,
一种是在根号N内的所有素数一一试除
还有一种是概率算法,用费马小定理的逆定理(当然不成立,所以只是概率算法)
满足a^(n-1) mod n=1 的合数是非常少的,听说用取a=2,3,5,7,11,13测试在maxlongint(pascal语言中最大长整形数)只有1个是合数
[/Quote]
341,550,071,728,321最小反例,俺没看到过有什么报告称这是int64范围内唯一一个。由于这个数比起2^64来少了很多因此有理由相信在int64里还有至少几个反例。
xxlovec
2010-08-08
打赏
举报
回复
[Quote=引用 15 楼 minitoy 的回复:]
呵呵,谭浩强的c语言里好像提到判断到根号n就可以了
[/Quote]
那个方法不好理解 效率还低
绿色夹克衫
2010-08-08
打赏
举报
回复
其实就是米勒罗宾,估计FancyMouse同志给出的这个数,应该是这几个都能测过的(2-17),否则用不着这么大,能通过测试的合数多了。不过具体怎么找到这么大的数的,就不清楚了。估计Int64范围的话,还得多测几个。
[Quote=引用 37 楼 zyjpjl 的回复:]
你那是只测试一个数字,注意我指的是这几个数字都要测试……
[/Quote]
zyjpjl
2010-08-07
打赏
举报
回复
算法可以参见百度百科“费马小定理”,时间复杂度也是很理想的,常数级。
zyjpjl
2010-08-07
打赏
举报
回复
判断素数的最快算法……我也不知道,只知道两种比较快的,
一种是在根号N内的所有素数一一试除
还有一种是概率算法,用费马小定理的逆定理(当然不成立,所以只是概率算法)
满足a^(n-1) mod n=1 的合数是非常少的,听说用取a=2,3,5,7,11,13测试在maxlongint(pascal语言中最大长整形数)只有1个是合数
超级大笨狼
2010-08-06
打赏
举报
回复
判断一个数是质数
最快的办法是:
查质数表!~~
wuyi8808
2010-08-04
打赏
举报
回复
http://www.cnblogs.com/skyivben/archive/2010/07/10/1775001.html
seqingzi
2010-08-03
打赏
举报
回复
貌似偶数都没排除。。
应该是楼主少添加了一个判断if(n&1)
如果是素性检验的话,miler那个只是以很高概率的保证是素数。信安数基没怎么好好看,老师讲解RSA的也没怎么听。
chenkezhi
2010-08-03
打赏
举报
回复
这样计算效率低
wsncz
2010-08-03
打赏
举报
回复
6*N + 1
6*N + 5
特殊 2、3
xunathan
2010-08-02
打赏
举报
回复
楼主给的好像不对,4没有考虑到
加载更多回复(25)
判断
一个
数是
否为
质数
(素数)的4种
方法
目录 1.什么是
质数
? 2.如何
判断
是否为
质数
?
方法
1
方法
2
方法
3
方法
4 1.什么是
质数
? 首先来看
质数
的概念:
质数
(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。(也可定义为只有1与该数本身两个正因数的数) 图1 数字12不是
质数
,而数字11是
质数
如上图所示,数字12可以将每4个分成一组,...
判断
一个
数是
否为
质数
/素数——从普通
判断
算法到高效
判断
算法思路
定义:约数只有1和本身的整数称为
质数
,或称素数。 计算机或者相关专业,基本上大一新生开始学编程都会接触的
一个
问题就是
判断
质数
,下面分享几个
判断
方法
,从普通到高效。1)直观
判断
法最直观的
方法
,根据定义,因为
质数
除了1和本身之外没有其他约数,所以
判断
n是否为
质数
,根据定义直接
判断
从2到n-1是否存在n的约数即可。C++代码如下:bool isPrime_1( int num ) { int t...
判断
质数
/素数——我知道的
最快
的
方法
标准版:大部分人都知道的比较快的
方法
:
判断
从2到sqrt(n)是否存在其约数,时间复杂度O(sqrt(n)) 高配版:
判断
2之后,就可以
判断
从3到sqrt(n)之间的奇数了,无需再
判断
之间的偶数,时间复杂度O(sqrt(n)/2) 尊享版: 首先看
一个
关于
质数
分布的规律:大于等于5的
质数
一定和6的倍数相邻。例如5和7,11和13,17和19等等; 证明:令x≥1,将大于等于5的自然数......
判断
一个
数是
不是
质数
(素数),3种方式介绍
一、概念介绍 大家中学都学过,就不过多介绍了,大致提两点:
质数
又称素数。
一个
大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做
质数
;否则称为合数。 0和1既不是
质数
也不是合数,最小的
质数
是2 二、
方法
介绍 1.最直观,但效率最低的写法 public static boolean isPrime(int n){ if (n <= ...
C语言--输入
一个
数
判断
是否为素数(多种
方法
)
需要解决这个问题,首先我们要明白-------->什么是素数? (
质数
)素
数是
指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 这种
方法
的思想也是最直接最普遍的,假设这个
数是
n,我们需要
判断
素数,我们就拿这个数和从(2~~n-1)的每个数去和这个数做取余操作,如果有
一个
数可以使得余数为0,则这个数不是素数,反之则这个数为素数。 ...
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章