[問題] 前N個質數和

看板C_and_CPP作者 (陌生人)時間11年前 (2013/04/26 17:15), 編輯推噓2(2014)
留言16則, 6人參與, 最新討論串1/1
開發平台(Platform):C++ 問題(Question):輸入一個數字N,輸出前N個質數總和 (EX:輸入10,將會輸出從1開始的前10個質數,並算出總和) 程式碼(Code): #include <iostream> using namespace std; int main() { int n; cout<<"n:"; cin>>n; int i=1; int sum=0; while(sum<n) { int div=0; int j=1; while(j<=i) { if(i%j==0) div++; j++; } if(div==2) { cout<<i<<" "; sum++; } i++; } system("pause"); return 0; } 補充說明(Supplement):新手入門,思考嘗試了一陣子都求不出正解, 煩請板上各位大大能幫幫我(這程式試算出前n個質數) 第一次發程式文,感覺有點凌亂,還請各位包含@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 49.158.191.35 ※ 編輯: ggyy2940 來自: 49.158.191.35 (04/26 17:16) ※ 編輯: ggyy2940 來自: 49.158.191.35 (04/26 17:17)

04/26 17:27, , 1F
這程式很正確@@ 所以你要問什麼?
04/26 17:27, 1F

04/26 18:02, , 2F
知道是哪些數了 剩下怎麼把他加起來- -? 不是吧orz
04/26 18:02, 2F

04/26 19:09, , 3F
sum應該改成counter,然後sum用來加總就好了...
04/26 19:09, 3F

04/26 19:48, , 4F
不是四則運算錯了 是原po把n設定成 質數的數目
04/26 19:48, 4F

04/26 19:48, , 5F
而不是測試的邊界..
04/26 19:48, 5F

04/26 19:49, , 6F
這程式碼跑出來的是 依序輸出最小的n個質數
04/26 19:49, 6F

04/26 19:52, , 7F
疑 我眼殘 沒錯 這跟題目要的一樣
04/26 19:52, 7F

04/26 19:55, , 8F
就多掛個全域變數total 把total指定成total+i
04/26 19:55, 8F

04/26 19:56, , 9F
return前輸出總合一次即可
04/26 19:56, 9F

04/27 15:10, , 10F
就判斷質數的方法而言我有一點意見@@
04/27 15:10, 10F

04/27 15:10, , 11F
比起計算總共兩個因數,看到1和自己以外的因數就排除
04/27 15:10, 11F

04/27 15:11, , 12F
這樣不是會比較快嗎?
04/27 15:11, 12F

04/27 17:00, , 13F
一般來說常數項不記 如果真要說的話 計算到1~N/2就好
04/27 17:00, 13F

04/27 17:01, , 14F
或者乾脆全部質數都記錄下來 只是浪費空間
04/27 17:01, 14F

04/27 22:55, , 15F
不是N/2 是√N
04/27 22:55, 15F

04/28 11:34, , 16F
恩...難怪我打完覺得怪怪的
04/28 11:34, 16F
文章代碼(AID): #1HUaMQF3 (C_and_CPP)