Saya membaca bahwa algoritma yang paling efisien ditemukan dapat menghitung faktor dalam waktu, tetapi kode saya tulis adalah O ( n ) atau mungkin tergantung pada seberapa cepat pembagian dan modulus. Saya cukup yakin saya telah salah mengerti sesuatu di suatu tempat, tapi saya tidak yakin di mana. Inilah yang saya tulis dalam bentuk kode semu.
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