题目
【实验主题】
素数问题求解。计算(判断) 1~100中哪些是素数、哪些是合数。
素数也称为质数,是只能被1及其自身整除的自然数。与素数相对应的是合数,合数可以被分解为若干个素数的乘积,这些素数称为这个合数的质因数(素因数)。
【实验任务】
1、新建 .js文件,自定义2个函数。
1)编写自定义函数 isPrime(n),用于判断参数n是不是素数,分别返回 true or false。
2)编写自定义函数 calc100(),将100个数拼接到一个 10*10的二维表格中,其中以单元格的 2种不同背景色区分素数、合数。
2、新建 index.html。
1)至少定义 2组不同背景色的 CSS样式,用于区分素数、合数。建议定义更多 CSS样式,对表格做合理排版。
2)在页面中插入 js脚本以输出求解结果:document.write( calc100() );
效果图
index.html文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>100以内的素数与合数</title>
<style>
table {
margin: 0 auto;
/* 设置表格居中对齐 */
}
td {
width: 60px;
/* 设置单元格宽度为80px */
height: 60px;
/* 设置单元格高度为80px */
text-align: center;
border: 1px lightpink solid;
}
</style>
</head>
<body>
<script src="script.js"></script>
<script>
calc100();
</script>
</body>
</html>
script.js文件
function isPrime(n) {
if (n <= 1) {
return false;
}
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
function calc100() {
var n = 1;
document.write("<table cellspacing='0'>");
for (let i = 0; i < 10; i++) {
document.write("<tr>");
for (let j = 0; j < 10; j++) {
if (isPrime(n))
document.write("<td style='background-color:yellow'>" + (n++) + "</td>");
else
document.write("<td style='background-color:lightblue'>" + (n++) + "</td>");
}
document.write("</tr>");
}
document.write("</table>");
}