iT邦幫忙

0

java印出2~100之間的所有質數(已解決)

  • 分享至 

  • xImage

我是程式新手,最近看影片學習,怎麼樣都想不出來這題。
請問要怎麼在boolean設定為false的情況下,把質數2也印出來呢?
我寫這樣,但少了2...

for(int a=2;a<=100;a++){
boolean answer=false;
for(int b=2;b<a;b+=(b==2?1:2)){
if(a%b!=0){
answer=true;
}else{
answer=false;
break;
}
}
if(answer){
System.out.print(a+"\t");
}
}

subaru219 iT邦新手 5 級 ‧ 2024-08-05 11:59:14 檢舉
你這樣的寫法,2這個數字根本就不會進迴圈去跑,只會直接帶你一開始宣告的boolean值,那你一開始宣告false,就自然而然不會印出2來
你把初始宣告改成true就解決了,為什麼一定要設定成false?
jo60913 iT邦新手 5 級 ‧ 2024-08-05 13:54:35 檢舉
第二層for迴圈中的b<a,當a為2的時候 近來第二層for回圈時 b一開始頁為2。開始b<a 時 就不成立for迴圈就不跑。answer一樣為false不便。
elira iT邦新手 5 級 ‧ 2024-08-05 15:33:57 檢舉
謝謝兩位的解說! 看了你們的說法之後,我在boolean answer=false; 下面加了if條件式就成功了QQ
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答