// 循环检查从 2 到 number - 1 的所有可能的因数 for (let i = 2; i <= Math.sqrt(number); i++) { if (number % i === 0) { returnfalse; // 如果能被整除,则不是质数 } }
returntrue; // 如果不能被任何数整除,则是质数 }
/** * @param {number} n * @return {number} */ var countPrimes = function (n) { let res = 0; for (let i = 2; i < n; ++i) { res += isPrime(i); } return res; };
埃氏筛
初始化一个长度为 n 的布尔数组(或者称为标记数组),数组中的每个元素都被初始化为 true,表示对应的索引数是质数。