javascript - 显示特定范围内的所有质数

标签 javascript primes

<分区>

我想看到从开头(2)到结尾(根据我的设置)的所有质数。

var nums = [2];
for (var i = 3; i < 103; i++) {
    for (var x = 0; x < nums.length; x++) {
        if (i % nums[x] != 0) nums.push(i);
    }
}
$("body").append(nums);

我不明白这是什么问题。

最佳答案

每次不能被任何前面的数字整除时,您将“i”添加到“nums”。所以添加'4'是因为它不能被'3'整除。 '5' 被加 3 次,因为它不能被 '2'、'3' 或 '4' 除,'6' 被加 4 次,因为它不能被 '4'(出现 1 次)或 '5'( 3 次)。所以实际上你的算法所做的是将所有数字多次相加,大约使每个数字的 'nums' 数组的大小加倍。

所以有两个答案:

  1. 它不会像您预期的那样工作,因为您添加到 nums 的“任何时候”而不是“全部”

  2. 它会崩溃,因为它需要包含 2^100 个元素的数组(这会占用大量内存)。

关于javascript - 显示特定范围内的所有质数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18640182/

相关文章:

javascript - D3.js 中的堆叠区域

javascript - 我如何使用 Google Maps geocoder.getLatLng() 并将其结果存储在数据库中?

c - 寻找孪生素数 - 逻辑已完成,但程序运行时不会打印任何内容

encryption - 安全素数的产生

c - 我编写了一个 C 函数来确定一个数字是否为素数,但它不起作用

javascript - jQuery 验证器方法在移动设备上的工作方式不同

javascript - OpenLayers:从服务器获取 Map、View、TileLayer 和 OSM

javascript - 将坐标值转换为fixed64 protobuf对象

c++ - 检验埃拉托色尼移动筛的唯一性

c++ - 这个素数测试如何使代码快 5000 倍?