查找10000以内的质数
质数,只能被自己和1整除的整数。
判断要点1:质数数组默认为[2], n若能被任意质数数组中的值整除,则不是质数
(function displayPrime() { let primeArray = [2]; for (let i=3; i< 10000; i++) { let iIsPrime = true; for (let prime of primeArray) { if (i % prime === 0) { iIsPrime = false; break; } } if (iIsPrime) { primeArray.push(i); } } console.info(primeArray); })();
判断要点2:偶数一定不是质数
(function displayPrime() { let time1=(new Date()).valueOf(); let primeArray = [2]; for (let i=3; i< 10000; i+=2) { let iIsPrime = true; for (let prime of primeArray) { if (i % prime === 0) { iIsPrime = false; break; } } if (iIsPrime) { primeArray.push(i); } } console.log('timeout: '+ ((new Date()).valueOf() - time1)) console.info(primeArray); }());
判断要点3:开平方的结果是整数的整数不是质数
(function displayPrime() { let time1=(new Date()).valueOf(); let primeArray = [2]; for (let i=3; i< 10000; i+=2) { let sqrt=Math.sqrt(i), borderNum = i%sqrt; let iIsPrime = !(borderNum === 0 ); if (!iIsPrime) { continue; } for (let prime of primeArray) { if (i % prime === 0) { iIsPrime = false; break; } } if (iIsPrime) { primeArray.push(i); } } console.log('timeout: '+ ((new Date()).valueOf() - time1)) console.info(primeArray); }());