JavaScript趣題:質(zhì)數(shù)之差
來(lái)源:懂視網(wǎng)
責(zé)編:小采
時(shí)間:2020-11-27 20:25:44
JavaScript趣題:質(zhì)數(shù)之差
JavaScript趣題:質(zhì)數(shù)之差:質(zhì)數(shù)不是有規(guī)律分布的,這從兩個(gè)相鄰質(zhì)數(shù)的差就能得到體現(xiàn)。2和3相差1,3和5相差2,5和7的確也是相差2,但7和11卻相差了4。乍看之下,你的確找不到規(guī)律,事實(shí)也是如此。在2到50之間,我們可以找到如下的相鄰的差為2的質(zhì)數(shù)對(duì):3-5, 5-7, 11-13, 17
導(dǎo)讀JavaScript趣題:質(zhì)數(shù)之差:質(zhì)數(shù)不是有規(guī)律分布的,這從兩個(gè)相鄰質(zhì)數(shù)的差就能得到體現(xiàn)。2和3相差1,3和5相差2,5和7的確也是相差2,但7和11卻相差了4。乍看之下,你的確找不到規(guī)律,事實(shí)也是如此。在2到50之間,我們可以找到如下的相鄰的差為2的質(zhì)數(shù)對(duì):3-5, 5-7, 11-13, 17

質(zhì)數(shù)不是有規(guī)律分布的,這從兩個(gè)相鄰質(zhì)數(shù)的差就能得到體現(xiàn)。
2和3相差1,3和5相差2,5和7的確也是相差2,但7和11卻相差了4。
乍看之下,你的確找不到規(guī)律,事實(shí)也是如此。
在2到50之間,我們可以找到如下的相鄰的差為2的質(zhì)數(shù)對(duì):
3-5, 5-7, 11-13, 17-19, 29-31, 41-43
很明顯,滿足上面條件的第一對(duì)質(zhì)數(shù)是3-5。
那么,更通用的情況,從m到n之間,差距為g的第一對(duì)相鄰質(zhì)數(shù)是多少?
函數(shù)原型如下:
gap(g , m , n)
例子如下:
gap(2, 5, 7) // --> [5, 7]
gap(4, 130, 200) // --> [163, 167]
gap(2, 5, 5) // --> null
請(qǐng)注意,一定要是符合g差的第一對(duì)相鄰質(zhì)數(shù)。
如果找不到,返回null。
對(duì)于這一類和質(zhì)數(shù)打交道的題目,咋們都無(wú)可避免地要引入一個(gè)判斷質(zhì)數(shù)的函數(shù),有時(shí)我也不禁YY,要是能把這個(gè)函數(shù)納入ECMA標(biāo)準(zhǔn),那該多爽!
但是考慮到通用性,這個(gè)isPrime方法確實(shí)應(yīng)用場(chǎng)景窄了點(diǎn),不適合綁定在Number.prototype上面,于是就只能一次次地做題目時(shí)扒下來(lái)粘貼了,汗^_^。
這個(gè)題目本身沒(méi)什么難度,一趟循環(huán),遇到符合條件的質(zhì)數(shù)對(duì)就return,沒(méi)有符合條件的返回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;
}
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
JavaScript趣題:質(zhì)數(shù)之差
JavaScript趣題:質(zhì)數(shù)之差:質(zhì)數(shù)不是有規(guī)律分布的,這從兩個(gè)相鄰質(zhì)數(shù)的差就能得到體現(xiàn)。2和3相差1,3和5相差2,5和7的確也是相差2,但7和11卻相差了4。乍看之下,你的確找不到規(guī)律,事實(shí)也是如此。在2到50之間,我們可以找到如下的相鄰的差為2的質(zhì)數(shù)對(duì):3-5, 5-7, 11-13, 17