Prime faktoryzacja dużych liczb [zamknięte]

Chcę znaleźć faktoryzację liczb pierwszych dużych liczb mniejszych niż 10 ^ 12. Mam ten kod (w 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;
    }

Po pierwsze, jaka jest złożoność powyższego algorytmu? Mam trudności ze znalezieniem go?

Również będzie zbyt wolny dla dużych liczb, które są pierwsze.

Czy istnieje lepszy algorytm, czy też jak zoptymalizować to algo?

questionAnswers(4)

yourAnswerToTheQuestion