JavaScript求解孪生质数
来源:互联网 发布:淘宝多少销量一颗心 编辑:程序博客网 时间:2024/05/19 13:23
如果2个数都是质数,而且它们相差为2,那么就可以说是一对“孪生质数”。
如何判断指定范围内的孪生质数?
一种高效的做法是结合筛法与缓存判断,可以很接近线性的效率。
用常规的判定质数方法,再使用缓存,也可以达到目的。
效率是O(N*sqrt(N))的,而且因为缓存的缘故,多次调用的情况下,性能也是很可观的。
下面,我提供了常规实现,具体上还可以优化,比如使用二分查找。
//缓存孪生质数var cache = [[3,5],[5,7]];//是否是质数function isPrime(n){ var factor = Math.sqrt(n); //最小的质数是2 if(n < 2){ return false; } //质数只有1和它本身,2个因子//否则是合数 for(var i=2;i<=factor;i++){ if(n % i == 0){ return false; } } return true;}function twinPrime(n) {//缓存的最后一对孪生质数 var last = cache[cache.length - 1];//如果n在已缓存范围内 if(n < last[0] + 1){//直接返回数目 for(var i=0;cache[i][0] < n;i++); return i; } else{//否则,查找并且缓存 var start = last[0] + 1; for(var i=start;i<n;i++){ if(isPrime(i) && isPrime(i+2)){ cache.push([i, i+2]); } } return cache.length; }}
阅读全文
0 0
- JavaScript求解孪生质数
- 孪生质数——孤独的质数
- 逆向思维求解质数
- 求解质数和合数
- 关于质数的求解
- 求解孪生素数--梅森素数
- oracle正则+with+质数求解
- 3-2编程求解质数
- javascript质数判断
- JavaScript趣题:回文质数
- javascript 查找质数
- 判断质数-javascript函数
- Unity环境下的质数求解探究
- 求解200-500间的质数
- java求解第N个素数(质数)
- 求解N以内的质数问题
- JavaScript——生成质数
- JavaScript趣题:质数之差
- 实现垂直水平居中的方法
- 200、302、304、404、500等HTTP状态码
- Rhyme/设计模式之单例模式详解—作用、应用场景、优点、五种单例模式实现方式
- 专访汇付数据副总裁姜靖宇:“纸上谈兵”时代终结,人工智能将变革第三方支付行业
- vue-router的那些事儿
- JavaScript求解孪生质数
- Python 中文数字转数字(阿拉伯)
- SSM框架整合后js、css失效问题
- 荐书 | 高可用架构 榨干持续服务潜能 标引一线架构风向
- 能为程序员男友做点什么吗?
- 学习Java中所遇到问题,关于为什么List为什么会设置成接口
- if条件句有大括号和没有大括号的区别
- 研究生日迹-201710月
- java:list实现学生管理类