Alan Gauld, 08.11.2010 17:28:
"Steven D'Aprano" wrote
def proper_divisors(n):
return sum(x for x in range(1, int(math.sqrt(n))) if n%x == 0)
Why use math.sqrt() instead of just using the ** operator?
return sum(x for x in range(1, int(n**0.5)) if n%x == 0)
I'd have expected ** to be significantly faster than calling the
function, and given this is a performance tweak...?
Since this operation is only evaluated once in the whole runtime of the
loop, I think readability beats the likely very tiny performance difference
here.
Stefan
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor