国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

輸出1-100之內的所有質數

2019-11-08 19:25:15
字體:
來源:轉載
供稿:網友

方法一:

 

思路:

1、這個程序用了兩層循環。外層循環列舉從2到100之間的每一個整數(作為被除數),
然后在內層循環中用從2到它之間的數去除它,如果找到了一個能夠整除它的數,內層循環將立即跳出(此時j小于i)。
如果一直沒有找到能夠整除它的數,則當內層循環將2到它之間的所有數都嘗試過一遍之后,內層循環也跳出(此時j等于i)。
2、等到內層循環跳出之后,程序接著判斷j是否大于等于i,如果是(上面第二種情況),
表明這個數是質數,于是將這個數打印出來并計算到累加和中去;如果不是(上面第一種情況),表明這個數不是質數。
1 public static void test2() { 2         int i, j; 3         for (i = 2; i <= 100; i++) { 4             for (j = 2; j < i; j++) { 5                 if (i % j == 0) 6                     break; 7             } 8             if (j >= i) 9                 System.out.PRintln(i);10         }11     }

方法二:

思路:

1、外層循環作為被除數,內層循環作為除數。

2、定義一個開關,標記外層循環數是否為質數。默認為 true

3、內層循環結束,如果開關還為true。即被除數為質數,打印出來

1 public static void test3() { 2         for (int i = 2;i<= 100;i++){//1既不是質數也不是和數,所以從2開始 3             boolean k = true; 4             for (int n = 2; n < i; n++) { 5                 if (i % n == 0) { 6                     k = false; 7                     break; 8                 } 9             }    10             if(k){11                 System.out.print(i + " ");12             }13         }14 }

升級版:  如果能把上兩種方法寫出來,確實已經很好了。但有沒有更優的代碼去實現?

試著去想這些問題:

1、外層for循環有必要執行100次嗎?

除了2所有的偶數都不是質數,那么能不能只遍歷奇數。

代碼:for (int i = 3; i < 100; i+=2) //i一次循環自增2

考慮到這個問題,for循環就少遍歷了50次。效率就提升了一倍

2、內層for循環能不能也做些優化呢?

內層for循環作為 除數(除數從3 到 被除數-1),通過規律發現

除數只需要從3 到 除數的開平方根數 就行了。

1 public static void test4() { 2         boolean bool; 3         for (int i = 3; i < 100; i+=2) { 4             bool = true; 5             for (int j = 3; j <= Math.sqrt(i); j++) { 6                 if (i % j == 0) { 7                     bool = false; 8             break; 9                 }10             }11             if (bool)12                 System.out.print(i + " ");13         }14     }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邵东县| 芦山县| 米易县| 察哈| 信宜市| 镇康县| 巢湖市| 曲水县| 成安县| 榆树市| 山阴县| 穆棱市| 景谷| 喜德县| 兴安县| 仙居县| 杭锦后旗| 云和县| 怀集县| 泸水县| 冀州市| 咸阳市| 阿克苏市| 武穴市| 绵竹市| 富平县| 绵阳市| 宜黄县| 驻马店市| 大竹县| 德庆县| 饶河县| 公主岭市| 鄱阳县| 甘肃省| 射阳县| 岳阳市| 济南市| 墨玉县| 西藏| 苍溪县|