【问题标题】:Show all the prime numbers in a specific range [duplicate]显示特定范围内的所有素数[重复]
【发布时间】:2013-09-09 12:22:16
【问题描述】:

我想查看从开头 (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);

我不明白这是什么问题。

【问题讨论】:

  • 也许您可以描述一下您正在尝试做什么,以及为什么您认为这可以解决问题。换句话说,手动完成你的公式,看看为什么它会无限循环。
  • 那么,问题出在哪里?你期待什么,会发生什么?你试图解决什么?你试过多久了?

标签: javascript primes


【解决方案1】:

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

所以有两个答案:

  1. 它不会像您期望的那样工作,因为您将 'when any' 而不是 'when all' 添加到 nums 中

  2. 它会崩溃,因为它需要包含 2^100 个元素的数组(这是很多内存)。

【讨论】:

    猜你喜欢
    • 2013-02-19
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-23
    • 2014-10-23
    相关资源
    最近更新 更多