「这是我参与2022首次更文挑战的第21天,活动详情查看:2022首次更文挑战」
大家好,我是洋哥。今天给大家带来一道JavaScript的程序流程控制的题解—素数入笼。
题目要求
众所周知,质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。我们要求将2至500以内(包含500)的素数以单元格的形式呈现出来。
建议用时:15-20分钟
难度:中等
知识点考察
这道题主要考察了JavaScript的程序流程控制和基础的HTML的表格元素
问题分析
第一,这道题思路很清晰,分两步走,第一步是要编写程序判断出哪些数是质数,第二步是将判断出来的质数输出到单元格中。
第二,具体实现程序判断质数。根据质数的特点进行筛选。先用for语句进行数字(用i表示)的遍历,然后将比i小的数字(用j表示)进行一一取模,如果i对除1以外的j取模==0,则不是质数,反之亦然。
第三,具体实现将判断出来的质数输出到单元格中。这需要用到document.write();只要在输出前输出一个,然后输出质数,最后输出一个即可。如果对列数有要求,可以设置一个计数器,输出一个质数++1,然后进行判断即可。
相关知识点复习
for循环语句
for关键字后面小括号“()”中包括了三部分内容:
1.初始化表达式。
2.循环条件。
3.操作表达式。
它们之间用“;”分隔,{}中的执行语句为 3循环体。
for循环语句小括号“()”内的每个表达式都可以为空,但是必须保留分号分割符。当每个表达式都为空时,表示该for循环语句的循环条件永远满足,会进入无限循环的状态,此时如果要结束无限循环,可在for语句循环体中用跳转语句进行控制。
常用输出语句
① alert() 警告框
② console.log() 控制台输出
③ document.write()文档页面输出
代码实现
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>1-500内的素数</title>
<style>
table{border-collapse:collapse;}
table td{border:2px solid #ccc;padding:3px 6px;}
</style>
</head>
<body>
<table >
<script>
document.write('<tr>');
var m=0;
for (var i = 2; i <= 500; i++) {
for (var j = 1; j <= i; j++) {
if (j !== 1 && j !== i && i % j == 0) {
break
}
if (j == i) {
document.write('<td>');
document.write(i)
m++;
document.write('</td>');}
if(m%10==0){
document.write('</tr>');
document.write('<tr>');
}
}
}
</script>
</table>
</body>
</html>
总结和建议
这道题充分的把质数这个常考名词与JavaScript结合在一起,很巧妙。建议大家将如何判断素数的方法多找一些,看一看记一记,无论是哪种语言素数都是常考的。