以ä¸ä»£ç å¯ä»¥å®ç°JavaScriptæ±nä¸ªç´ æ°ï¼å½n=500æ¶æ»¡è¶³é¢ç®éæ±ã
function prime(n){
var primeArr = [2];
var isPrime = function(num, primeList){
if(num == 2){
return true;
}
for(var i = 3, iLen = Math.sqrt(num), j = 1; i <= iLen; i = primeList[j++]){
if(num % i == 0){
return false;
}
}
return true;
}
if(isNaN(n) || n < 1){
return [];
}
for(var i = 3, i < n; i += 2){
if(isPrime(i, primeArr)){
primeArr.push(i);
}
}
return primeArr;
}
prime(100)
//å½æ°è°ç¨
prime(100);//计ç®100以å
çç´ æ°ï¼
ç´ æ°å³é¤å»1åå
¶æ¬èº«ä¸¤ä¸ªæ°ä¹å¤ï¼ä¸è½è¢«ä»»ä½æ°æ´é¤çæ´æ°ã
ç±å
¬çå¯ç¥ï¼å¦æä¸ä¸ªæ´æ°è½è¢«å解æå¤ä¸ªæ´æ°ï¼åå¿
æä¸ä¸ªæ°ä¸å¤§äºè¯¥æ´æ°çå¹³æ¹æ ¹ï¼åè¯æ³å¯ç¥ï¼å¦æå解æç两个æ°é½å¤§äºå¹³æ¹æ ¹ï¼åä¹ç§¯å¿
大äºåæ°ï¼ï¼æ
å¨å¾ªç¯æ¶ï¼åªé循ç¯å°è¯¥æ°çå¹³æ¹æ ¹å³ï¼Math.sqrt(num)为æ±å¹³æ¹æ ¹ï¼
å¦æä¸ä¸ªæ°è½è¢«2æ´é¤ï¼åé¤2ä¹å¤å
¶ä»æ°é½ä¸æ¯ç´ æ°ï¼æ
ä»3å¼å§éåè½å¤åå°å¾ªç¯æ¬¡æ°
å¦æä¸ä¸ªæ°è½å¤è¢«å解ï¼åæç»å解ç»æå¿
ç¶ä¸ºå¤ä¸ªç´ æ°ä¹ç§¯ï¼æ
循ç¯æ¶åªéè¦å°è¯ä¹åç®å¥½çç´ æ°è½å¦æ´é¤å½åçæ°ï¼æ大åå°å¾ªç¯æ¬¡æ°
追é®ç¾åº¦çå§
追çè¿ä¸ªè¿éè¦ç¾åº¦åï¼
åªéä¸æï¼å¯ä»¥ç´æ¥è®²ã
追é®é£é½ä¸æ
åª
追çvar isPrime = function(num, primeList){
if(num == 2){
return true;
}
for(var i = 3, iLen = Math.sqrt(num), j = 1; i <= iLen; i = primeList[j++]){
if(num % i == 0){
return false;
}
}
return true;
}
å°±æ¯æåäºä¸ä¸ï¼è¿ä¸ªæ¯å¤ææ¯å¦æ¯ç´ æ°ã
if(isNaN(n) || n < 1){
return [];
}
è¿ä¸ªæ¯æ£æ¥ä¼ è¿æ¥çåæ°
for(var i = 3, i < n; i += 2){
if(isPrime(i, primeArr)){
primeArr.push(i);
}
}
è¿ä¸ªæ¯å¾ªç¯ï¼è§æ¯ç´ æ°çåå°primeArréé¢ã