Ich habe irgendwo gelesen , dass der effizienteste Algorithmus gefunden können die Faktoren berechnen Zeit, aber der Code , den ich geschrieben habe , ist O ( n ) oder Möglicherweise O ( n log n ), je nachdem, wie schnell Division und Modul sind. Ich bin mir ziemlich sicher, dass ich irgendwo etwas falsch verstanden habe, aber ich bin mir nicht sicher, wo. Hier ist, was ich in Pseudocode-Form geschrieben habe.
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