我找出哪些NUM分所示,節目最高的主要因素, 有一個與陣列中的問題,並爲什麼在這個質數檢查中得到一個ArrayIndexOutOfBoundsException?
arr[j] = i;
j++;
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1 at primenum.main(primenum.java:13)
//to find highest prime factor
public class primenum {
public static void main(String[] args) {
double num = 600851475143.0;
int j = 1;
int arr[] = {j};
for(int i=2; i<=num/2; i++)
{
if((num%i) == 0)
{
arr[j] = i;
j++;
}
}
// take the last item from array, coz its last big prime
System.out.println("largest prime is "+ arr[j-1]);
}
}
什麼是解決這個問題的最好方法?
我解決這個問題,
- 檢查因素,直到NUM/2,
- 全部推到一個數組,
- 檢查最後一個元素......
對於素數我需要做更多,但我在初始階段卡住了。
當人們問簡單的問題時,我喜歡它,你有六種不同的方式來表達完全相同的東西 - 有趣的觀看。 +1 :)玩得開心,選擇最佳答案。 – 2010-02-11 17:09:09