Re: [問題] 一個簡單質數求法?
※ 引述《t731017 (昌ㄟ喔)》之銘言:
: 因為練習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
: 想到頭破~不知道為什麼?
首先你這個寫法的意思是 只要小於i的數中,有任何一個不被整除的狀況出現
就會當作是質數 (k)
而且無論如何都一定會把k印出來
另外所有數都可以找到一個不能整除它且小於它的整數,(ex: i%j, j=i-1)
所以你一定是會印出所有數字(i)
1. 我的建議是先把大括號補齊吧!!!
看你對程式碼的排版,你明顯不知道你的程式會怎麼運作
2. 要判斷質數,要把所有的j試過才決定是不是質數,很明顯你的程式不是這樣寫
3. 另外附帶一提,基本上j不用全部跑完,j跑到根號i就可以了
(所以100的話跑到10就可以了)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.196.227
※ 編輯: wouzfer 來自: 111.251.196.227 (10/30 17:59)
推
10/30 18:09, , 1F
10/30 18:09, 1F
→
11/03 01:31, , 2F
11/03 01:31, 2F
→
11/03 01:31, , 3F
11/03 01:31, 3F
討論串 (同標題文章)