Divisor reduction
Python, 49 bytes
f=lambda n:n and-~f(sum(n%~x<0for x in range(n)))
orlp helped save a byte! And Sp3000 saved two more. Thanks!
C, 52 bytes
g,o;l(f){for(g=o=f;o;f%o--||--g);return f?1+l(g):0;}
Pyth, 10 bytes
tl.ulf%NTS
Test suite.
Explanation
tl.ulf%NTS
tl.ulf%NTSNQ implicit variables at the end
Q obtain the input number
.u N repeat the following until result no longer unique:
S generate range from 1 to N
f filter for:
%NT T in that range, which N%T is truthy (not zero)
l length of that list
that means, we found the number of "non-divisors" of N
tl number of iterations, minus 1.