def factors(n): """ Return a list of the distinct prime factors of n in nondecreasing order. """ factors = [] candidate = 2 while n > 1 and candidate*candidate <= n: while n > 1 and n % candidate == 0: factors.append(candidate) n = n / candidate candidate = candidate + 1 if n > 1: factors.append(n) return factors