基本思路
判断一个数是不是素数最基本的方法就是用这个数去除以从2到sqrt(这个数),如果这中间的所有数都不能被整除,那么这个数就是一个素数。
在判断一个整数区间里有多少个素数的时候,就会涉及到用嵌套的循环来实现,外层循环用来产生将要进行判断的数,内层循环用来产生从2到sqrt(这个数)并进行判断。但是需要控制好循环的退出与继续,以便把这个素数记录下来。
使用循环标记变量
public class Application {
public static void main(String[] args) {
int i, m;
one:for(i = 1; i <= 100; i++) {
for(m = 2; m <= Math.sqrt(i); m++) {
if(i % m == 0) {
continue one;
}
}
System.out.println(i);
}
}
}
使用一个标记符号
public class Application {
public static void main(String[] args) {
boolean b = true;
for(int i = 1; i <= 100; i++) {
for(int j = 2; j < Math.sqrt(i); j++) {
if(i % j == 0) {
b = false;
break;
}
}
if(b) {
System.out.println(i);
}
}
}
}
可以把判断是否是素数封装成一个独立的方法
public class Application {
public static void main(String[] args) {
for(int i = 1; i <= 100; i++) {
if(isPrimeNumber(i)) {
System.out.println(i);
}
}
}
public static boolean isPrimeNumber(int num) {
boolean flag = true;
// 1 is not a prime number
if(num == 1) {
flag = false;
} else {
for(int i = 2; i < Math.sqrt(num); i++) {
if(num % i == 0) {
//不是素数
flag = false;
//不需要继续判断了
break;
}
}
}
return flag;
}
}