Ho letto da qualche parte che l'algoritmo più efficiente trovato può calcolare i fattori nel tempo , ma il codice che ho scritto è o possibilmente seconda della divisione e del modulo veloci. Sono abbastanza sicuro di aver frainteso qualcosa da qualche parte, ma non sono sicuro di dove. Ecco cosa scritto in forma di pseudo codice.
function factor(number) -> list
factors = new list
if number < 0
factors.append(-1)
number = -number
i = 2
while i <= number
while number % i == 0
factors.append(i)
number /= i
i++
return factors