javascript - 循环内的 JS 循环
问题描述
我的任务是编写一个 js 代码,只使用从用户那里接收数字并打印出 1 和该数字之间的所有素数的循环。
这就是我所做的,但它没有像我期望的那样工作,找不到我缺少的东西:
var num = parseInt(prompt('Please enter a number'));
var flag = 0;
for (var i=2 ; i<=num ; i++){
for (var j=2 ; j<num ; j++){
if (num%j==0){
flag = 1;
break;
}
}
if (flag==0) console.log(i);
if (flag==1) flag=0;
}
解决方案
当您在嵌套的 for 循环中时,您正在确定 ifi
是质数,而不是num
. 所以你想在i
那里使用变量,如下所示:
var num = parseInt(prompt('Please enter a number'));
var flag = 0;
for (var i=2 ; i<=num ; i++){
for (var j=2 ; j<i ; j++){
if (i%j==0){
flag = 1;
break;
}
}
if (flag==0) console.log(i);
if (flag==1) flag=0;
}
我已经留下了你的其余代码,所以你尽可能地了解发生了什么。
如果你喜欢短代码,这里有一个短版本:
var num = parseInt(prompt('Please enter a number'));
for(var i = 2, flag = 0; i <= num; i++, flag = 0){
for(var j = 2; j < i; j++) flag = i % j == 0 ? 1 : flag;
if(!flag) console.log(i);
}
推荐阅读
- javascript - 多文件上传 HTML / CSS / JS
- python - 关于避免“错误:安装了模块1 somenumber,但 {'module2'} 需要 module1>=somenumbergreaterthansomenumber”
- python - 仅包括一个 id 有 2 个标志的 id (PANDAS)
- c# - 为什么我在控制器中的 Nest 方法会创建索引?
- javascript - 如何添加标签 JS
- sql - 在带有 psql 的数组常量中
- azure - Microsoft 语音识别段落格式
- python - Selenium - Firefox 选项不生效
- javascript - Heroku 错误:节点 js 代码=H10 desc="App crashed" method=GET path="/" host=vkkran.herokuapp.com request_id=a6265a53-6c39-4b6f-a09d-c0760b6b4b9a fwd
- discord.js - discord.js 创建一个类别然后在所述类别内创建频道