私はどこかで、最も効率的なアルゴリズムが時間で因子を計算できることを読みましたが、私が書いたコードは、除算とモジュラスの速さに応じて、または場合によってはです。どこかで誤解したことは確かですが、どこにあるのかわかりません。擬似コード形式で記述しました。
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