时间:2021-07-01 10:21:17 帮助过:20人阅读
例子如下:
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; }
以上就是 JavaScript趣题:质数之差的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!