如何显示在给定极限内存在的所有素数
How to display all prime numbers that exist in the given limits
创建一个HTML页面,该页面接受用户在文本字段中输入的10到120.当用户按下"显示"按钮时,您在JavaScript中创建的函数应该能够显示介于1和120之间的所有素数。
示例
输入整数:20
函数应返回:1, 2, 3, 5, 7, 11, 13, 17, 19
function primeNumbers(){
var p;
var n = document.primeForm.primeText.value;
var d;
var x;
var prime;
var displayAll = 2 + " ";
for(p = 3; p <= n; p = p+2){
x = Math.sqrt(p);
prime=1;
for(d = 3; prime && (d <= x); d = d+2)
if((p%d) == 0)
prime = 0;
else
prime = 1;
if(prime == 1){
displayAll = displayAll + p + " ";
}
}
document.primeForm.primeArea.value = displayAll;
}
但它可以显示超过120:(
for
循环是一切发生的地方。因此,如果该值超出了您想要的范围,则不允许执行for
循环。为此,请在for
循环周围放置一个if
语句。
由于您只计划使用这些数字一次,因此无论您是直接在if
语句中输入min/max,还是创建一个变量来保存该值,都无关紧要。大多数人建议将所有变量放在首位,以防你需要改变范围:这样更容易找到它们。
关于if
语句:n
是是否执行for
循环的决定因素。以下是声明:if (n >= 10 && n <= 120) { insert the for loop here }
。您所要做的就是检查输入是否大于或等于10,并检查输入是否小于或等于120。
注意:如果不希望显示任何内容,请在if
语句中输出结果的for
循环之后包含一行。
虽然Rhyono的建议会起作用,因为除非n
在10到120之间,否则不会发生任何事情,请记住,这是在一个交互式页面上,因此给用户适当的反馈是非常重要的。
当人们点击网页上的一个按钮时,他们期待着发生一些事情。出于这个原因,我建议你在这里采取不同的方法,比如这样:
function displayClicked()
{
var n = document.primeForm.primeText.value;
if (n < 10 || n > 120)
{
// Display an appropriate error to the user like:
// "n must be between 10 and 120."
}
else
{
primeNumbers(n);
}
}
使用这种方法,当用户输入一个无效的数字时,他们会收到有用的反馈,而不是什么都不发生。
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 用于检查数组中是否存在元素的javascript自定义方法
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 正在将事件处理程序添加到不存在的类
- 是否存在React Native“;WEB代码安全防护”;
- 一个密码测试程序,如果存在空格,它会提醒用户
- 验证会话中是否存在对象's数组
- 在Dojo类中递归调用setTimeout时是否存在内存泄漏
- 如何获得Backbone.js收藏集只存在于内存中(未持久化)
- 单元测试javascript是否存在内存泄漏
- 这个函数是否存在内存泄漏?
- 这种AJAX模式是否存在内存泄漏?
- 在这个JavaScript中,内存中存在哪些对象
- Internet Explorer 7/Backbone可能存在内存泄漏
- Node.js:新版本中存在严重的内存泄漏错误
- 在webapp中可能存在内存泄漏
- 处理数组时可能存在JavaScript内存泄漏