Android 台灣中文網
標題:
求質數程式碼有問題
[打印本頁]
作者:
free576002
時間:
2014-1-9 18:41
標題:
求質數程式碼有問題
本帖最後由 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
請問該如何修改
歡迎光臨 Android 台灣中文網 (https://apk.tw/)
Powered by Discuz! X3.1