素数:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除
解题思路:
- 看题目,101到200之间的素数,那我们首先写一个for循环来遍历101到200之间的数
<script>
//遍历101到200之间的数
for(var i = 101;i <= 200; i++){
}
</script>
- 看素数的特点,除了1和它本身外,不能被其他自然数整除,**那就是只能被1和自身整除 ,**这时我们就可以再写一个循环,循环 1 到 i 之间的数字
<script>
//遍历101到200之间的数
for(var i = 101;i <= 200; i++){
//循环遍历 1 - i 之间的数
for(var j = 1;j <= i ;j ++){
}
}
</script>
- 现在就需要判断,判断 i 取余 1 - i 之间为 0 的数 ,判断完了需要一个变量统计 i 取余 1 - i 之间为 0 的数 统计是为了后边判断素数
<script>
//遍历101到200之间的数
for(var i = 101;i <= 200; i++){
//循环遍历 1 - i 之间的数
var count = 0; //变量统计 i 取余 1 - i 之间为 0 的数
for(var j = 1;j <= i ;j ++){
//判断 i 取余 1 - i 为 0 的数
if(i % j == 0){
count ++; //统计i 取余 1-i 之间为0的数字
//【如:i= 4的时候 i 取余 1 == 0 i 取余 2 == 0 i 取余 4 == 0 那么 count变量就会++三次 就不符合只能被1和自身整除,所以需要继续判断!】
continue; // 判断完 就跳出本次循环让 j 在自增继续判断,直到 j > i 的时候就执行外层循环
}
}
}
</script>
- 最后一步,还是根据素数的特点,只能被1 和自身整除,而上一步也列举出了count 的结果,所以还需要最后一步判断 ,如果 count == 2 的话, 那这个数就是素数 ,就可以打印出来
完整代码如下
<script>
//遍历101到200之间的数
for(var i = 101;i <= 200; i++){
//遍历j到i之间的数判断出是否能被1和自身整除
var sum = 0; //定义变量记录i 取余 1-i 之间为 0 的数 【i循环内写用完就清空】
for(var j = 1;j <= i; j++){
//判断 i 取余 1 - i 为 0 的数
if(i % j == 0){ //可判断符合 i 取余 1-i 为 0 的数
count ++; //统计i 取余 1-i 之间为0的数字
//【如:i= 4的时候 i 取余 1 == 0 i 取余 2 == 0 i 取余 4 == 0 那么 sum变量就会++三次 就不符合只能被1和自身整除】
continue;
}
}
if(count == 2){ //素数只能被1和自身整除,所有sum == 2的时候表示 i 能被1和自身整除
console.log(i); //打印出符合条件的数
}
}
</script>