我的质数函数坏了,但我不知道为什么
My prime number function is broken but I don't know why
下面是我做的一个小函数,它应该列出 1 到 1001 之间的所有素数。它使用一个 for 循环来获取一个数字,然后另一个 for 循环来检查它是否是素数。一旦完成检查(如果它是素数),它就会将数字推送到一个数组中。这个数组应该在最后输出,但实际上没有。提前致谢。
<html>
<body>
<script>
function pNumList(){
var primeNumbers = [];
for(var noomber = 2; noomber<=1001; noomber++){
for(var i = 2; i<noomber; i++){
if(noomber%i==0){}else{
primeNumbers.push(noomber);
}
}
}
pNumbersList.innerHTML = primeNumbers;
}
</script>
<p id="pNumbersList"></p>
<button onclick="pNumList()" value = "Let's see em">Prime numbers list!</button>
<br>
<p>This might take a sec...</p>
</body>
</html>.
这是正确的函数:
function pNumList(){
var primeNumbers = [];
for(var noomber = 2; noomber<=1001; noomber++){
for(var i = 2; i<noomber; i++){
if(noomber%i==0){
break;
}else{
primeNumbers.push(noomber);
break;
}
}
}
pNumbersList.innerHTML = primeNumbers;
}
这是工作代码:
function pNumList(){
var primeNumbers = [];
for(var noomber = 2; noomber<=1001; noomber++){
var prime = true;
for(var i = 2; i<noomber; i++){
if(noomber%i==0){
prime = false;
break;
}
}
if (prime) {
primeNumbers.push(noomber);
}
}
pNumbersList.innerHTML = primeNumbers.join(',');
}
function pNumList(){
var primeNumbers = [];
for(var noomber = 2; noomber<=1001; noomber++){
for(var i = 2; i<noomber; i++){
if(noomber%i==0){}else{
primeNumbers.push(noomber);
}
}
}
pNumbersList.innerHTML = primeNumbers.toString();
您只需要使用 toString 将您的 js 数组转换为字符串;
但是你的算法仍然不正确,你每次在 noomber%i!=0
时向数组添加数字
下面是我做的一个小函数,它应该列出 1 到 1001 之间的所有素数。它使用一个 for 循环来获取一个数字,然后另一个 for 循环来检查它是否是素数。一旦完成检查(如果它是素数),它就会将数字推送到一个数组中。这个数组应该在最后输出,但实际上没有。提前致谢。
<html>
<body>
<script>
function pNumList(){
var primeNumbers = [];
for(var noomber = 2; noomber<=1001; noomber++){
for(var i = 2; i<noomber; i++){
if(noomber%i==0){}else{
primeNumbers.push(noomber);
}
}
}
pNumbersList.innerHTML = primeNumbers;
}
</script>
<p id="pNumbersList"></p>
<button onclick="pNumList()" value = "Let's see em">Prime numbers list!</button>
<br>
<p>This might take a sec...</p>
</body>
</html>.
这是正确的函数:
function pNumList(){
var primeNumbers = [];
for(var noomber = 2; noomber<=1001; noomber++){
for(var i = 2; i<noomber; i++){
if(noomber%i==0){
break;
}else{
primeNumbers.push(noomber);
break;
}
}
}
pNumbersList.innerHTML = primeNumbers;
}
这是工作代码:
function pNumList(){
var primeNumbers = [];
for(var noomber = 2; noomber<=1001; noomber++){
var prime = true;
for(var i = 2; i<noomber; i++){
if(noomber%i==0){
prime = false;
break;
}
}
if (prime) {
primeNumbers.push(noomber);
}
}
pNumbersList.innerHTML = primeNumbers.join(',');
}
function pNumList(){
var primeNumbers = [];
for(var noomber = 2; noomber<=1001; noomber++){
for(var i = 2; i<noomber; i++){
if(noomber%i==0){}else{
primeNumbers.push(noomber);
}
}
}
pNumbersList.innerHTML = primeNumbers.toString();
您只需要使用 toString 将您的 js 数组转换为字符串; 但是你的算法仍然不正确,你每次在 noomber%i!=0
时向数组添加数字