[問題] 一個簡單質數求法?

看板C_and_CPP作者 (昌ㄟ喔)時間15年前 (2010/10/30 17:30), 編輯推噓5(5010)
留言15則, 5人參與, 最新討論串1/3 (看更多)
因為練習C的時候發現一個問題 質數不是除了1還有本身數字之外 就不能除了~為什麼以下程式寫出來是錯的? int main(void) { int i,j,k,n; for (i=2;i<=100;i++) { for(j=2;j<i;j++) if (i%j!=0) k=i; printf("%d\n",k); } system("pause"); return 0; } 因為一個簡單的問題! 想說只要餘數不等於0 想到頭破~不知道為什麼? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.240.172.103

10/30 17:35, , 1F
內層迴圈要在檢查一下 建議帶幾個小數字手動算
10/30 17:35, 1F

10/30 17:37, , 2F
我猜是邏輯有點問題
10/30 17:37, 2F

10/30 17:37, , 3F
這樣子寫只要找到一個比自己小又除不盡的 就會印出來
10/30 17:37, 3F

10/30 17:39, , 4F
內迴圈跟if可能要加個括號 不過這樣還要改下條件
10/30 17:39, 4F

10/30 17:39, , 5F
只加括號邏輯還是錯的
10/30 17:39, 5F

10/30 17:39, , 6F
裡面if要括號吧?
10/30 17:39, 6F

10/30 17:40, , 7F
我有檢查過.但他輸出為什麼全部數字.不是質數?
10/30 17:40, 7F

10/30 17:41, , 8F
if 加括號不是ㄟ
10/30 17:41, 8F

10/30 17:45, , 9F
printf要放括號裡
10/30 17:45, 9F

10/30 17:46, , 10F
也試過了.還是不行!
10/30 17:46, 10F

10/30 17:47, , 11F
二、三樓的理由請仔細研究
10/30 17:47, 11F

10/30 17:51, , 12F
可以提示一下是哪邊的邏輯觀念嗎?
10/30 17:51, 12F

10/30 17:54, , 13F
提示:if條件要改成i%j==0,在{}裡想辦法跳出內層迴圈
10/30 17:54, 13F

10/30 18:06, , 14F
i==j會讓每個數字都整除.所以接下要來解決?
10/30 18:06, 14F

10/30 18:09, , 15F
下一篇的第2點
10/30 18:09, 15F
文章代碼(AID): #1Co-Mwoc (C_and_CPP)
文章代碼(AID): #1Co-Mwoc (C_and_CPP)