1. 题目
判断101-200之间有多少个素数(质数),并输出所有素数(质数)。
2. 思路
素数i
只有 1
和 i
两个因子,所以在算 i
的时候,让它自身将从
2
2
2~
i
\sqrt{i}
i 所有的数都做一遍取余运算。
- 如果在这么多次运算中,哪怕有一次得到的余数值为
0
都可以判断这个i
不是一个质数,所以我们把break
语句设定在这里。这个时候我们设定一个int
类型的符号symbol
来标志跳出循环时的状态(是否是质数),并且跳出循环。 - 如果多次运算中,每一次循环,如果取余数运算为非零,
symbol
就置1
,如果循环过程中始终没有跳出,一直到循环做完symbol
还是1
,那么这个数就是个质数。 - 这个循环过程可以用
for
来完成,也可以用while
完成,使用while
不要忘记设定一个j
来控制循环步进。
3. 代码
public class prime_number3 {
public static void main(String[] args) {
int count = 0;
for (int i = 101; i <=200 ; i++) {
int symbol = 0;
int j = 2;
while(j<=Math.sqrt(i)){
if (i%j==0){
symbol = 0;
break;
}
else {
symbol = 1;
}
j++;
}
if (symbol!=0){
System.out.println(i+"是个质数");
count = count+1;
}
}
System.out.println("101-200之间质数的个数是:"+count+"个");
}
}