每日一题——素数入笼

151 阅读2分钟

「这是我参与2022首次更文挑战的第21天,活动详情查看:2022首次更文挑战

大家好,我是洋哥。今天给大家带来一道JavaScript的程序流程控制的题解—素数入笼。

题目要求

众所周知,质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。我们要求将2至500以内(包含500)的素数以单元格的形式呈现出来。 snipaste_20220221_201306.png  

建议用时: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结合在一起,很巧妙。建议大家将如何判断素数的方法多找一些,看一看记一记,无论是哪种语言素数都是常考的。