我找出哪些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