需求:输出1到1000以内的素数。
前边章节我们讲过判断素数的例子,具体的需求是输入一个数,判断这个数是否是素数。本例子与前边判断素数的例子有什么不同呢?本例子确定了判断素数的范围即1到1000之间(包括1和1000)的数,每个数的判断素数的方法是一样的,需要从1开始判断,依次判断1到1000的每个数。
根据上边的分析,我们准备用双重循环:
1、外层循环从1到1000循环1000次。
2、内层循环判断素数的循环,从2到这个数的2分之1。
代码如下:
import java.util.Scanner;
/**
* 面向过程编程-双重循环,判断1到 1000之间的素数
*
* @author 攀博课堂(www.pbteach.com)
*
*/
public class NestedloopsDemo1 {
public static void main(String[] args) {
//外层循环,从2到 1000,1不是素数直接排除
for(int x=2;x<=1000;x++) {
// 设一个布尔变量,为true表示是素数,为false表示不是素数
boolean isPrime = true;
int i=2;
while(i<=x/2 && isPrime) {
if (x % i == 0) {//可以被整除说明不是素数
isPrime = false;
}
i++;
}
if (isPrime) {
System.out.println(x + "是素数");
}
}
}
}