Tôi đã đọc ở đâu đó rằng thuật toán hiệu quả nhất được tìm thấy có thể tính toán các yếu tố trong thời gian , nhưng mã tôi đã viết là hoặc có thể là tùy thuộc vào mức độ phân chia và mô đun nhanh như thế nào. Tôi khá chắc chắn rằng tôi đã hiểu nhầm một cái gì đó ở đâu đó, nhưng tôi không chắc là ở đâu. viết dưới dạng mã giả.O ( n ) O ( n log n )
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