JavaScript趣题:质数之差
来源:互联网 发布:浙江大学网络预约 编辑:程序博客网 时间:2024/06/06 02:33
质数不是有规律分布的,这从两个相邻质数的差就能得到体现。
2和3相差1,3和5相差2,5和7的确也是相差2,但7和11却相差了4。
乍看之下,你的确找不到规律,事实也是如此。
在2到50之间,我们可以找到如下的相邻的差为2的质数对:
3-5, 5-7, 11-13, 17-19, 29-31, 41-43
很明显,满足上面条件的第一对质数是3-5。
那么,更通用的情况,从m到n之间,差距为g的第一对相邻质数是多少?
函数原型如下:
gap(g , m , n)
如果找不到,返回null。
对于这一类和质数打交道的题目,咋们都无可避免地要引入一个判断质数的函数,有时我也不禁YY,要是能把这个函数纳入ECMA标准,那该多爽!
但是考虑到通用性,这个isPrime方法确实应用场景窄了点,不适合绑定在Number.prototype上面,于是就只能一次次地做题目时扒下来粘贴了,汗^_^。
这个题目本身没什么难度,一趟循环,遇到符合条件的质数对就return,没有符合条件的返回null,就这样了!
2和3相差1,3和5相差2,5和7的确也是相差2,但7和11却相差了4。
乍看之下,你的确找不到规律,事实也是如此。
在2到50之间,我们可以找到如下的相邻的差为2的质数对:
3-5, 5-7, 11-13, 17-19, 29-31, 41-43
很明显,满足上面条件的第一对质数是3-5。
那么,更通用的情况,从m到n之间,差距为g的第一对相邻质数是多少?
函数原型如下:
gap(g , m , n)
例子如下:
gap(2, 5, 7) // --> [5, 7]gap(4, 130, 200) // --> [163, 167]gap(2, 5, 5) // --> null请注意,一定要是符合g差的第一对相邻质数。
如果找不到,返回null。
对于这一类和质数打交道的题目,咋们都无可避免地要引入一个判断质数的函数,有时我也不禁YY,要是能把这个函数纳入ECMA标准,那该多爽!
但是考虑到通用性,这个isPrime方法确实应用场景窄了点,不适合绑定在Number.prototype上面,于是就只能一次次地做题目时扒下来粘贴了,汗^_^。
这个题目本身没什么难度,一趟循环,遇到符合条件的质数对就return,没有符合条件的返回null,就这样了!
Number.prototype.isPrime = function(){ var maxFactor = Math.floor(Math.sqrt(this)); for(var i=2;i<=maxFactor;i++){ if(this % i === 0){ return false; } } return true; }; function gap(g, m, n) { var firstPrime; var secondPrime; for(var i=m;i<=n;i++){ if(i.isPrime()){ firstPrime = secondPrime; secondPrime = i; if(secondPrime - firstPrime === g){ return [firstPrime,secondPrime]; } } } return null;}
0 0
- JavaScript趣题:质数之差
- JavaScript趣题:回文质数
- 基于visual Studio2013解决C语言竞赛题之1064互质数差1验证
- javascript质数判断
- javascript 查找质数
- 判断质数-javascript函数
- JavaScript求解孪生质数
- JAVASCRIPT:计算两日期的天数之差
- 搜索之质数环
- 计蒜客之判断质数
- 两个质数之积
- python之质数判断
- 数论基础之质数
- JavaScript——生成质数
- javascript求日期差
- 编程之美 质数相关
- 华为oj之质数因子
- 质数因子之机试
- MySQL系列教程(三)
- 第28个python程序:布尔表达式练习
- Android开发——Android手机屏幕适配方案总结
- Android WebView开发问题汇总
- ListView和GridView列表滑动卡顿问题的优化方法汇总
- JavaScript趣题:质数之差
- iOS 10本地推送
- jquery总结知识点
- 前言---我最喜欢的宣老师语录
- 一个简单的单点登录构思
- redis加入到Windows 服务
- JVM垃圾回收机制
- Linux查看并释放占用端口
- 触发Full GC执行的情况