1. 题目
判断101-200之间有多少个素数(质数),并输出所有素数(质数)。
2. 思路
素数i只有 1 和 i两个因子,所以在算 i 的时候,让它自身将从 2 22~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+"个");
}
}
4. 运行结果

版权声明:本文为qq_42902997原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。