綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 求質數程式碼有問題

[複製連結] 查看: 1015|回覆: 0|好評: 0
跳轉到指定樓層
樓主
free576002 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2014-1-9 18:41

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
本帖最後由 free576002 於 2014-1-9 18:43 編輯

我在Eclipse Java 寫一個計算X~Y範圍質數的程式碼
使用上都ok沒有問題
但是換上去Android後卻會有錯誤結果 以下是我的程式碼
  1. private void sumAB(int a, int b) {
  2.         StringBuffer buf=new StringBuffer();
  3.         int debug = 0 ;
  4.         int loopTime=-1; //陣列位置宣告
  5.         int sum[]=new int [1000];
  6.         int t = 0 , t1 = 0 , t2 = 0; //整數宣告
  7.                 for (int n = 0 ; a <= b ; a++) { // x~y範圍內值數
  8.                         t = a%2; //求除2的餘數
  9.                                 if (t != 0) {        //餘數!=0
  10.                                         if (a == 1) {
  11.                                                 a=a+1;        //1不為質數但2為質數 故當a=1時 a+1使其為2
  12.                                                 loopTime = loopTime+1; //每新增一個數就指定該值的陣列位置
  13.                                                 sum[loopTime] = a;         //a所對應的陣列位置
  14.                                         } else { // a != 1
  15.                                                 loopTime = loopTime+1;
  16.                                                 sum[loopTime] = a;                                                                       
  17.                                         }
  18.                                 }
  19.                 } //求餘數,且3 5 7 11 13質數 需保留
  20.                 for (int loopA = 0 ; loopA <=loopTime ; loopA++) {
  21.                         t2 = sum[loopA]%3;
  22.                                 if (t2 != 0 && sum[loopA] !=3)
  23.                                 if (sum[loopA]%5 !=0 ||sum[loopA]==5)
  24.                                 if (sum[loopA]%7 !=0 ||sum[loopA]==7)
  25.                                 if (sum[loopA]%11 !=0 ||sum[loopA]==11)
  26.                                 if (sum[loopA]%13 !=0 ||sum[loopA]==13)
  27.                                           for(int value : sum)
  28.                                           buf.append(value + "");
  29.                                           Ans.setText(buf.toString());
  30.                
  31.         }                                 
  32. }
複製代碼


假設要計算1~25的質數 (紅色字非質數)會出現以下
2 3 5 7 9 11 13
15 17 19 21 23 25

請問該如何修改
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則