小於100的質數有哪些?共幾個?

之前接家教,有教過國中數學。質數第一次被提到,是在國一上,第2單元-因數與倍數,那時候提到的。

質數(Prime number的定義:大於1的正整數當中,除了1和自己本身之外,沒有其他的因數,稱之為質數。

最小的質數是:2

正整數非質數即為合數。

最小的合數是:4

小於30的質數:2、3、5、7、11、13、17、19、23、29

…..

因為是家教,以上這些內容我講了不下百遍,但是學生有時候還是會錯,唉~~。

 

今天就用java練習一下,列出2~100的質數有哪些?總共有幾個?

JAVA程式碼

public class Ch03 {

    public static void main(String[] args) {

        int sum=0;

        for (int i = 2; i < 100;i++) {

           if (IsPrimeNum(i)) { 

              System.out.print(i+"  ");

              sum++;

           }

       }

        System.out.print("總共有"+sum+"個質數");

    }

    private static boolean IsPrimeNum(int i) {

       for (int j = 2; j < i;j++) {

           if (i%j==0) {

              return false;

           }

       }    

       return true;

    }

}

 

 程式執行結果

總共有幾個質數

 

【編寫邏輯】

要確認這個數是不是質數,要判斷的就是該數有沒有因數除了1和自己以外的因數,假如沒有的話,那麼就判定為true,該數為質數;反之為false,該數不是質數。

因此,寫一個迴圈,將該數用2開始除,除到(該數-1),即可。

【步驟】

1、定義一個布林值,我取名為IsPrimeNum,並且用i當作參數:boolean IsPrimeNum(int i)

2、寫一個迴圈,將正整數 i(2~100)除以正整數 j ,其中j大於1且小於i(質數定義),假如可以整除,那麼就不是質數,繼續除j+1,若再不能整除,繼續除j+2,若一直除到i-1都還沒整除,代表沒有任何j可以整除i,i即為質數,回傳true給IsPrimeNum;反之,回傳false給IsPrimeNum。

3、最後將我們的質數給顯示出來:假如IsPrimeNum收到的參數i為true,那麼我們就列印出i。

4、另外,再寫一個整數sum,只要IsPrimeNum收到的參數i為true,就+1,收到幾次true,就加幾次1,最後的結果即為質數的總數。


 

關於我

  關注社群|FB粉絲團追蹤IG:麻鼠揪麻將

◎  購買貼圖布丁鼠貼圖小元仔藥師貼圖

◎  點擊以下連結購物(您不會有額外支出,但我會有微薄的獎金)

蝦皮購物    hahow  

Klook  KKday  booking

 

 


arrow
arrow

    元元不絕 發表在 痞客邦 留言(0) 人氣()