馬上加入Android 台灣中文網,立即免費下載應用遊戲。
您需要 登錄 才可以下載或查看,沒有帳號?註冊  
 
x
 
 本帖最後由 free576002 於 2014-1-9 18:43 編輯  
 
我在Eclipse Java 寫一個計算X~Y範圍質數的程式碼 
使用上都ok沒有問題 
但是換上去Android後卻會有錯誤結果 以下是我的程式碼 
- private void sumAB(int a, int b) {
 
 -         StringBuffer buf=new StringBuffer();
 
 -         int debug = 0 ;
 
 -         int loopTime=-1; //陣列位置宣告
 
 -         int sum[]=new int [1000];
 
 -         int t = 0 , t1 = 0 , t2 = 0; //整數宣告
 
 -                 for (int n = 0 ; a <= b ; a++) { // x~y範圍內值數
 
 -                         t = a%2; //求除2的餘數
 
 -                                 if (t != 0) {        //餘數!=0
 
 -                                         if (a == 1) { 
 
 -                                                 a=a+1;        //1不為質數但2為質數 故當a=1時 a+1使其為2
 
 -                                                 loopTime = loopTime+1; //每新增一個數就指定該值的陣列位置
 
 -                                                 sum[loopTime] = a;         //a所對應的陣列位置
 
 -                                         } else { // a != 1
 
 -                                                 loopTime = loopTime+1;
 
 -                                                 sum[loopTime] = a;                                                                        
 
 -                                         }
 
 -                                 }
 
 -                 } //求餘數,且3 5 7 11 13質數 需保留
 
 -                 for (int loopA = 0 ; loopA <=loopTime ; loopA++) {
 
 -                         t2 = sum[loopA]%3; 
 
 -                                 if (t2 != 0 && sum[loopA] !=3) 
 
 -                                 if (sum[loopA]%5 !=0 ||sum[loopA]==5)
 
 -                                 if (sum[loopA]%7 !=0 ||sum[loopA]==7)
 
 -                                 if (sum[loopA]%11 !=0 ||sum[loopA]==11)
 
 -                                 if (sum[loopA]%13 !=0 ||sum[loopA]==13)
 
 -                                           for(int value : sum) 
 
 -                                           buf.append(value + "");
 
 -                                           Ans.setText(buf.toString());
 
 -                 
 
 -         }                                 
 
 - }
 
  複製代碼 
 
假設要計算1~25的質數 (紅色字非質數)會出現以下 
2 3 5 7 9 11 13 
15 17 19 21 23 25  
 
請問該如何修改 |