-
需求:
- 判断 101-200 之间有多少个素数,并输出所有素数。
-
分析:
-
素数又叫质数:是除了 1 和 它本身 之外,不能被其它正整数整除。
-
举例:
-
7 = 1*7 // 素数
8 = 1*8, 2*4 // 不是素数,是合数
9 = 1*9, 3*3 // 不是素数,是合数
1 和 0 // 既不是素数,也不是合数
实现
public class PrimeNumber {
// 1.定义一个判断素数的方法isPrimeNumber,设置两个形参:int startNumber,int endNumber
public static void isPrimeNumber(int startNumber,int endNumber) {
System.out.println("输出" + startNumber + "~" + endNumber + "之间的全部素数");
// 2.定义一个for循环,找到开始数到结束数之间的全部数
for (int i = startNumber; i <= endNumber; i++) {
// 3.立一个flag为信号位:标记,架设1一开始就认为遍历出的这个数是素数
boolean flag = true;
// 4.判断该数是否为素数:从2开始遍历到该数的一半的数,
for (int j = 2; j < i / 2; j++) {
if (i % j == 0) { //看是否有数可以整除它,有则不是素数,没有则是素数
flag = false; //有数可以整除它,表示不是素数
break;
}
}
// 5.循环验证结束后,发现没有数可以整除它,说明是整数并输出
if (flag) {
System.out.println(i + "\t");
}
}
}
public static void main(String[] args) {
// 6.调用方法isPrimeNumber
isPrimeNumber(101,200);
}
}