<分区>
我想看到从开头(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
<分区>
我想看到从开头(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' 数组的大小加倍。
所以有两个答案:
它不会像您预期的那样工作,因为您添加到 nums 的“任何时候”而不是“全部”
它会崩溃,因为它需要包含 2^100 个元素的数组(这会占用大量内存)。
关于javascript - 显示特定范围内的所有质数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18640182/