gpt4 book ai didi

javascript - 为什么我的素数程序不起作用?

转载 作者:行者123 更新时间:2023-11-28 20:03:39 25 4
gpt4 key购买 nike

我写了这个程序(js),理想情况下会将 10 以下的所有素数放入一个名为“primes”的数组中......你们中的任何人都知道为什么它不起作用吗? (primes 不会收到警报)。

var max = 10;
var count = 0;
var primes = [];
while(count <= max){
var factors [];
var count_ = 0;
var pres = [];
while(count_ <= count){
pres.push(count_);
count_++;
}
var count__ = 0;
while(count__ <= pres.length){
var res = count / pres[count__];
if(res % 1 == 0){
factors.push(pres[count__]);
}

count__++;
}
if(factors.length > 2){
primes.push(count);
}
count++;
}

alert(primes);

这是一个 Js Fiddle http://jsfiddle.net/ydH9C/

感谢您的帮助!

最佳答案

从控制台日志中可以看到:

Uncaught SyntaxError: Unexpected token [ 

这是因为您没有正确地将 factors 定义为数组,或者只是基本上缺少 =。所以改变:

var factors[];

至:

var factors = [];

Updated Demo

<小时/>

我认为 @Gaby aka G. Petrioli 指出您需要使用 if (factors.length === 2) 而不是 if (factors.length > 2),实际上你不需要那么多变量和while循环,只需这样做:

function getPrimes(max) {
var count = [], i, j, primes = [];
for (i = 2; i <= max; ++i) {
if (!count[i]) {
primes.push(i);
for (j = i < 1; j <= max; j += i) {
count[j] = true;
}
}
}
return primes;
}

alert(getPrimes(10));

Updated Demo

关于javascript - 为什么我的素数程序不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com