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

看板C_and_CPP作者 (瓦茲佛)時間13年前 (2010/10/30 17:57), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《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
補衝 為何是到(N)**(1/2)
11/03 01:31, 2F
文章代碼(AID): #1Co-lp-- (C_and_CPP)
文章代碼(AID): #1Co-lp-- (C_and_CPP)