1. 程式人生 > >從1到1000的質數

從1到1000的質數

質數判斷

問題,輸出1000以內質數。
什麼是質數?
只有1和他自己兩個因數的是質數。
思路
1. 建立一個數為遞增素數,從2開始。
2. 建立一個因數,從2開始。
3. 建立兩個迴圈,兩個迴圈巢狀,分別使質數和因數遞增。
4.

graph LR
餘數為零-->是
餘數為零-->否
是-->判斷該因數是否為質數
否-->繼續迴圈
判斷該因數是否為質數-->yes
判斷該因數是否為質數-->no
yes-->輸出質數
no-->跳過這個數不輸出
輸出質數-->繼續迴圈
跳過這個數不輸出-->
繼續迴圈
int q;
int l;
for( q=2;q<=1000;q++){
    for( l=2;l<=q;l++){
    if(q%l==0){
        if(q==l){
        System.out.println(q);
        break;
    }else
    break;
    }
}

方法2

  1. 建立一個數為遞增素數,從2開始。
  2. 建立一個因數,從2開始。
  3. 建立一個布林變數初始值為true代表這個數是質數
    4.建立一個巢狀迴圈
  4. 5.
graph LR
餘數為零-->
是 餘數為零-->否 是-->布林變數為false,跳出迴圈 否-->繼續迴圈直到不滿足條件 布林變數為false,跳出迴圈-->如果布林值為true,輸出質數 繼續迴圈直到不滿足條件-->如果布林值為true,輸出質數 如果布林值為true,輸出質數-->重置布林變數繼續迴圈
boolean s=true;
for(int a=2;a<=1000;a++){
    for(int b=2;b<=Math.sqrt(a);b++){
        if(a%b==0){
            s=false;
            break
; } } if(s){ System.out.println(a); } s=true; }