Optimizing Divisor Sieve
You can use xrange's third param to do the stepping for you to shave off a little bit of time (not huge).

Changing:

for j in xrange(1, n / i + 1):
    divs[i * j].append(i)


To:

for j in xrange(i, n + 1, i):
    divs[j].append(i)


For n=100000, I go from 0.522774934769 to 0.47496509552.  This difference is bigger when made to numDivisorSieve, but as I understand, you're looking for speedups in divisorSieve