JavaScript小练习:打印100以内的质数
质数的定义
质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。(也可定义为只有1与该数本身两个正因数的数)
如何判断一个数是否为质数
最直观的方法就是判断一个数是否能被比它小的数整除。本文中的程序就是基于这种方法编写的。
其他判断质数的方法可以参考https://blog.youkuaiyun.com/sinat_26811377/article/details/96584293
代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var flag = 1;
for(var n = 2; n < 101; n ++){
for(var i = 2; i < n; i ++){
if(n % i == 0){
flag = 0;
break;
}else{
flag = 1;
}
}
if(flag == 1){
document.write(n + ' ');
}
}
</script>
</body>
</html>
运行结果:
下面补充一种优化算法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var flag = 1;
for(var n = 2; n < 101; n ++){
for(var i = 2; i <= Math.sqrt(n); i ++){
if(n % i == 0){
flag = 0;
break;
}else{
flag = 1;
}
}
if(flag == 1){
document.write(n + ' ');
}
}
</script>
</body>
</html>