我最近开始学习 Java,我现在正在尝试解决一些 Eulerproject 问题。
任务是:数字 600851475143 的最大素因数是多少?
我能够创建此代码,但出现错误:
代码
package exercises;
import java.util.ArrayList;
public class Euler3 {
// Main code
public static void main(String[] args) {
System.out.println( getPrimeFactors(15) );
}
// Code for breaking a number to prime factors
public static ArrayList getPrimeFactors(int n){
ArrayList factors = new ArrayList();
int d = 2;
while(n > 1 ){
while(n%d == 0 ){
factors.add(d);
n /= d;
}
d +=d;
}
return factors;
}
}
错误:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at exercises.Euler3.getPrimeFactors(Euler3.java:22)
at exercises.Euler3.main(Euler3.java:9)
我究竟做错了什么?
谢谢