Я думаю, что для удобства чтения и скорости @ решение Oxrock является лучшим, поэтому вот код, переписанный для Python 3 +:
def num_factors(n):
results = set()
for i in range(1, int(n**0.5) + 1):
if n % i == 0: results.update([i,int(n/i)])
return results