1、外层循环作为被除数,内层循环作为除数。
2、定义一个Boolean,标记外层循环数是否为质数。默认为 true。
3、内层循环结束,如果开关还为true。即被除数为质数,打印出来。
代码如下:
1 class Demo2{ 2 public static void main(String args[]){
3 //1既不是质数也不是和数,使用i从2开始。
4 for(int i=2;i<=1000;i++){
5 boolean flag = true;
6 for(int j = 2;j < i;j++){
7 if(i % j==0){
8 flag = false;
9 break;//到了1000内的质数,就跳出循环,并输出结果。
10 }
11 }
12 if(flag){
13 System.out.print(" "+i);
14 }
15 }
16 }
17 }
运行效果:
第二种思路:
1、这个程序用了两层循环,外层循环列举从2到100之间的每一个整数(作为被除数),然后在内层循环中用从2到它之之间的数去除它,如果找到一个能够整除它的数,内层循环将跳出。如果一张没找到能够整除它的数,则当内层循环将2到它直接按的所有数都尝试过一遍之后,内循环也跳出。
2、等到内层循环跳出之后,程序接着判断j是否大于等于i,如果是上面的情况,表明这个数是质数,于是将这个数打印出来。
1 class Demo3{
2 public static void main(String args[]){
3 int i,j;
4 for(i = 2;i < 100;i++){
5 for(j = 2;j < i;j++){
6 if(i % j == 0)
7 break;
8 }
9 if(j>=i){
10 System.out.print(" "+i);
11 }
12 }
13 }
14 }
运行效果:
二、java习题:输出0-100的质数和
1 class Demo3{
2 public static void main(String args[]){
3 int sum = 0;
4 int j = 2;
5 // 找出1-100的质数之和
6 for (int i = 2; i <= 100; i++) { // i值为2,质数为除去1和自身整除的数 j初始值为2去除偶数
7
8 for (j = 2; j < i; j++) { //内层循环遍历查询i的整除数
9
10 if (i % j == 0) { //判断当前i是否可以整除k值
11 break; //整除则跳出循环
12 }
13 }
14 //如果当前内循环没有正常结束j与i对比不成立
15 if (j >= i) {
16 sum += i; // 累计质数和
17 System.out.println(i); //输出质数
18 }
19 }
20 System.out.println(sum); //输出质数之和
21 }
22 }