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 }

