Первичная факторизация больших чисел [закрыто]
Я хочу найти простую факторизацию больших чисел меньше 10 ^ 12. Я получил этот код (в Java):
public static List<Long> primeFactors(long numbers) {
long n = numbers;
List<Long> factors = new ArrayList<Long>();
for (long i = 2; i <= n / i; i++) {
while (n % i == 0) {
factors.add(i);
n /= i;
}
}
if (n > 1) {
factors.add(n);
}
return factors;
}
Прежде всего, какова сложность вышеуказанного алгоритма? У меня возникают трудности с его поиском?
Также это будет слишком медленно для больших чисел, которые просты.
Есть ли лучший алгоритм, или как оптимизировать этот алгоритм ??