我必须得到一个素数序列。但我的代码不起作用。怎样才能修复它?
var num1 = parseInt(prompt('Enter a number'));
var num2 = parseInt(prompt('Enter a number'));
var num3 = 0;
function primeSeq(num1, num2) {
var b = 1;
var c = '';
if (num1 > num2) {
num3 = num2;
num2 = num1;
num1 = num3;
}
for (var i = num1; i < num2; i++) {
for (var j = 2; j < i; j++) {
if (i % j == 0) {
b++;
}
if (b <= 1) {
c += i + ' ';
}
}
}
return c;
}
alert(primeSeq(num1, num2));
最佳答案
我猜你想要这样的东西
var num1 = parseInt(prompt('Enter a number'));
var num2 = parseInt(prompt('Enter a number'));
var num3 = 0;
if (num1 > num2) {
num3 = num2;
num2 = num1;
num1 = num3;
}
function primeSeq(num1, num2) {
var b;
var c = '';
for (var i = num1; i < num2; i++) {
b = 1;
for (var j = 2; j < i; j++) {
if (i % j === 0) {
b++;
}
}
if (b === 1) {
c += i + ' ';
}
}
return c;
}
alert(primeSeq(num1, num2));
因此,简而言之,b
应在每个新的主要候选者(i
循环)上重置为 1,并且对 b
的检查应在内部 (j
) 循环。
请注意,还有更多优化算法。
关于javascript - 使用 JS 查找素数序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40466597/