從1到1000的質數
阿新 • • 發佈:2018-12-30
質數判斷
問題,輸出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
- 建立一個數為遞增素數,從2開始。
- 建立一個因數,從2開始。
- 建立一個布林變數初始值為true代表這個數是質數
5.
4.建立一個巢狀迴圈
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;
}