例子如下:
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; }
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com