Android 台灣中文網

標題: 求質數程式碼有問題 [打印本頁]

作者: free576002    時間: 2014-1-9 18:41
標題: 求質數程式碼有問題
本帖最後由 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 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1