How can I make this code run faster?
public class ProjectEuler3 {
public static void main(String[] args) {
System.out.println(findfactors(600851475143l));
}
public static long findfactors(long n) {
long[] factors = new long[1000000];
int nooffactor = 0;
int c = 0;
for (long i = 2; i < n; i++) {
if (findPrime(i)) {
factors[c++] = i;
nooffactor++;
}
}
return factors[nooffactor - 1];
}
public static boolean findPrime(long n) {
for (long i = 2; i < n; i++) {
if(n % i == 0)
return false;
}
return true;
}
}
You could try something like this.
prints