[問題] 關於1~100的質數已回收

看板MATLAB作者 (friday)時間16年前 (2008/10/12 17:24), 編輯推噓0(006)
留言6則, 2人參與, 最新討論串1/1
在爬文後,有找到答案,可是顯示少了"2是質數"這行 如下: y=0; for i=2:100 for j=2:i-1 if rem(i,j)==0 y=1; break; else y=2; end end if y==2 fprintf('%g是質數\n',i); else y=0; end end 某板友提供,但由於我是初學者,看不太懂 設y的意義,且y代表什麼 謝謝大家回答! -- 一萬個美麗的未來,抵不上一個溫暖的現在。 每一個真實的現在,都曾經是你幻想的未來。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.171.165.95

10/12 17:40, , 1F
2沒顯示是因為 for j = 2 : i-1 的緣故,一開始i=2
10/12 17:40, 1F

10/12 17:41, , 2F
所以那行會變成 for j = 2 : 1, 因此不會顯示2是質數
10/12 17:41, 2F

10/12 17:45, , 3F
y只是拿來標記此數是否為質數而已...當i/j餘數為0時,
10/12 17:45, 3F

10/12 17:50, , 4F
此數不為質數,將y設定成1,下面的if就是以y來判斷是否
10/12 17:50, 4F

10/12 17:51, , 5F
為質數
10/12 17:51, 5F

10/13 22:25, , 6F
如果要更好的寫法可以 open primes 參考
10/13 22:25, 6F
文章代碼(AID): #18yS9Ex8 (MATLAB)
文章代碼(AID): #18yS9Ex8 (MATLAB)