···10101111def mul(lst):
1212 """Like sum(), but for multiplication."""
1313- return reduce(operator.mul, lst, 1)
1313+ return reduce(operator.mul, lst, 1) # NOQA
1414+1515+1616+def chunks(l, n):
1717+ """Yield successive n-sized chunks from l."""
1818+ for i in range(0, len(l), n):
1919+ yield l[i:i + n]
142015211622def factors(n):
1723 """Returns the factors of n."""
1824 return sorted(
1925 x for tup in (
2020- [i, n//i] for i in range(1, int(n**0.5) + 1)
2626+ [i, n // i] for i in range(1, int(n ** 0.5) + 1)
2127 if n % i == 0)
2228 for x in tup)
2329···4854 yield i
49555056 # Mark factors as non-prime
5151- for n in xrange(i * i, n, i):
5757+ for n in xrange(i * i, n, i): # NOQA
5258 _primes[n] = False
53595460