for迴圈輸出素數探究【java】

來源:互聯網
上載者:User

標籤:顯示   boolean   isp   span   system   ges   img   code   color   

一、判斷953是不是為素數(質數)。

代碼:

 1  /** 2     判斷953是不是為素數(質數) 3     分析: 4         素數指整數在一個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。 5         假設953是素數,則: 6         953 % 2 !== 0 7         953 % 3 !== 0 8         953 % 4 !== 0 9         ……10         953 % 952 !== 011         反推得出,只要953被2~952之間的任何一個整數整除,則953不是素數。12 13         除數從2開始到952按照整數依次遞增,則用for迴圈表示為:14             for(int i=2;i<953;i++){15                 判斷953能否被i整數16                     如果能被整除,則953不是素數,結束迴圈,跳出去輸出“953不是素數”17                     如果不能被整除,則953是素數,結束迴圈,跳出去輸出“953是素數”18             }19  */20  21  public class IsPrime22 {23     public static void main(String[] args){24 25         int num = 953;26         boolean isPrime = true;   // 標記數字num預設為素數27         for(int i=2;i<num;i++) {28             if(num%i==0) {        // num能夠被2~num-1之間的自然數整數29                 isPrime = false;  // 標記數字num為非素數30                 break;            // 結束迴圈31             }32         }33 34         System.out.println(isPrime?num+"是素數":num+"不是素數");    35 36     }37 }

代碼結果顯示:

 

二、列出1~100之間的所有素數

代碼:

 1 /** 2     列出1~100之間的所有素數 3     分析: 4         上面程式碼片段表示判斷num為953的自然數是不是素數, 5         假設num為937,則判斷937是不是素數, 6         假設num為933,則判斷933是不是素數, 7  8         因此將num設定為一個變數,利用for迴圈進行從1~100進行遞增, 9         將上門的程式碼片段放入該for迴圈中,判斷為素數就列印出來。10 11         for(int num=2;num<=100;num++) {12 13             判斷num是不是素數的程式碼片段14 15         }16 17 */18 19 public class IsPrime20 {21     public static void main(String[] args){22 23         for(int num=2;num<=100;num++) {24             boolean isPrime = true; // 標記數字num預設為素數25             for(int i=2;i<num;i++) {26                 if(num%i==0) {27                     isPrime = false;28                     break;29                 }30             }31             if(isPrime) {32                 System.out.print(num+" ");33             }34         }35     }36 }

代碼解釋說明:

代碼結果顯示:

 

三、列出1~100之間的所有素數,並每行顯示5個數。

代碼:

 1 /** 2     列出1~100之間的所有素數,並每行顯示5個數。 3     分析: 4         從上例代碼中可以得到1~100之間的所有素數。 5         要想每行顯示5個數,就是要知道每次素數得出的時候,知道它是第幾個出現的,然後進行累加 6         當累加數字到5時,就換行。 7  8         因此需要用一個標記來記錄每次素數輸出的次數。 9 10 */11 12 public class IsPrime13 {14     public static void main(String[] args){15         16         int count = 0; // 計數器,用來在每次素數列印時,記錄次數。17         for(int num=2;num<=100;num++) {18             boolean isPrime = true; // 標記數字num預設為素數19             for(int i=2;i<num;i++) {20                 if(num%i==0) {21                     isPrime = false;22                     break;23                 }24             }25             if(isPrime) {26                 System.out.print(num+" ");27                 count++; // 每列印一個素數就記錄一次28                 if(count%5==0) { // 每計數器累計記錄5次,就換行一次。29                     System.out.println();30                 }31             }32         }33     }34 }

代碼變形:計數器如果實現每5次累計之後,就置零也可以達到相應的計數效果。 將上述25行~31行代碼進行置換以下代碼,即可:

1 if(isPrime) {2   System.out.print(num+" ");3   count++; // 每列印一個素數就記錄一次4   if(count==5) { // 計數器累計到數字5時,就換行一次5      System.out.println();6      count = 0; // 計數器進行置零7     }8 }

代碼結果顯示:

四、輸出9*9乘法表

代碼:

 1 /** 2     輸出顯示9*9乘法表 3     1*1=1 4     1*2=2 2*2=2 5     1*3=3 2*3=6 3*3=9 6     1*4=4 2*4=8 3*4=12 4*4=16 7     …… 8     1*9=9 2*9=18 ……        ……       9*9=81 9 10     分析:按照每行和每列進行規律分析11         - 表格共9行,12         - 每第幾個行輸出需要共幾個等式13 14         恒等式格式為 i*j=c15             · 每行i從1開始遞增到j,表示為每第j行輸出可以輸出共i個等式16                 因此使用for迴圈表示為:17                 for(int i=1;i<=j;j++) {18                     ……19                 }20             · 表示第j行21                 for(int j=1;i<=9;j++) {22                     輸出一行  //該迴圈體執行一次,就換行一次。23                 }24         因此第一個for迴圈體需要在第二個for迴圈體之內。25 */26 27 public class Test0328 {29     public static void main(String[] args) {30         for(int j=1;j<=9;j++) {31             for(int i=1;i<=j;i++){32                 System.out.print(i+"*"+j+"="+i*j+" "); // i從1~j迴圈顯示,第j行需要顯示1~j個恒等式33             }34             System.out.println();    // 每上面的i迴圈體執行一次結束,即該行顯示完畢,就換行一次35         }36     }37 }

代碼結果顯示:

 

 

for迴圈輸出素數探究【java】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.