下面是JS实现计算小于非负数n的素数的数量算法示例的攻略:
算法背景
计算小于非负数n的素数的数量是基础的数学问题之一。素数指的是只能被1和自身整除的正整数。在计算中,我们需要找到小于n的所有素数,并统计它们的数量。这是一个经典的算法问题,也是很多编程面试中被提问的问题。
算法原理
本算法使用了朴素的质数判定方法,先将数组中所有数初始化为true,然后从2开始枚举到n-1,如果发现当前数是素数就把它的倍数全部标记为false。最后遍历一遍数组,统计素数的数量并返回。
算法的具体实现如下所示:
function countPrimes(n) {
const isPrimes = new Array(n).fill(true);
for (let i = 2; i * i < n; i++) {
if (isPrimes[i]) {
for (let j = i * i; j < n; j += i) {
isPrimes[j] = false;
}
}
}
let count = 0;
for (let i = 2; i < n; i++) {
if (isPrimes[i]) {
count++;
}
}
return count;
}
算法示例
为了更好的理解这个算法,下面给出两个示例说明:
- 示例1:计算小于10的素数的数量
console.log(countPrimes(10)); // 结果为4,因为小于10的素数有2、3、5、7
- 示例2:计算小于20的素数的数量
console.log(countPrimes(20)); // 结果为8,因为小于20的素数有2、3、5、7、11、13、17、19
以上就是JS实现计算小于非负数n的素数的数量算法示例的攻略,希望能够对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现计算小于非负数n的素数的数量算法示例 - Python技术站