將100以內的所有質數輸出

方法一:

     * 方法一
     * 根據質數的定義得出的方法
     */
    public static void isPrimeNumber2(){
        System.out.println("100以內的質數是: " + 2);
        System.out.println("100以內的質數是: " + 3);
        System.out.println("100以內的質數是: " + 5);
        System.out.println("100以內的質數是: " + 7);
        for (int i = 2 ;i < 100;i++){
            if(i % 2 != 0 && i % 3 != 0 && i % 5 != 0 && i % 7 != 0 ){
                System.out.println("100以內的質數是: " + i);
            }
        }
    }

方法二:

     * 方法二:
     * 這個代碼用了兩層循環。外層循環列舉從2-100之間的每一個整數(作爲被除數)
     * 然後在內層循環中用從2到它之間的數去除它,如果找到了一個能夠整除它的數,內層循環將立即跳出(此時j<i).
     * 如果一直沒有找到能夠整除它的數,則當內層循環將2到它之間所有數都嘗試一遍之後,內層循環也跳出(此時j等於i)
     * 等到內層循環跳出之後,程序接着判斷j是否大於i,如果是(上面第二種情況)* 表明這個數是質數,於是將這個數打印出來並計算到累加中去; 如果不是(上面第一種情況),表名這個數不是質數。
     */
    public static void isPrimeNumber3(){
        int i,j;
        for( i =  2; i < 100; i++){
            for( j = 2; j < i;j++){
                if (i  % j == 0){
                    break;
                }
            }
            if (j >= i){
                System.out.println("100以內的質數是:"+i);
            }
        }
    }
}

方法三:

public static void isPrimeNumber1(){
        int [] arr = new int[1000];
        int count = 0;
        for (int i= 2;i < 100; i++){
            boolean flag = true;
            for (int j =2;j <= Math.sqrt(i);j++){
                if (i % j == 0){
                    flag  = false;
                    break;
                }
            }
           if (flag ){
               System.out.println("100以內的質數是: "+ i);
           }
        }
    }

 public static void isPrimeNumber4(){
       boolean isFlag = true;
       int count = 0;
      label: for (int i = 2;i <= 100000; i++){ //遍歷100以內的自然數
           for (int j = 2 ; j < Math.sqrt(i); j++){
            if (i % j == 0){//若能除盡
               /* isFlag = false;
                break ;*/
                continue label;
            }
           }
           //能執行到此步驟都是質數
           count++;
           /*if(isFlag){
               System.out.println("100以內的質數是:"+i);
           }
           //重置 isFlag
           isFlag = true;*/
       }
       System.out.println("質數的個數是:"+count);
   }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章