Wouldn't len(str(num)) be adequate here? This is a quite literal translation of what the code should be doing: measuring the length of the text representation of a number. The mathematical approach seems a little convoluted, although it serves the purpose of teaching a lesson.
At the bottom of the article they mention that this was discouraged because they hadn't covered strings in the course yet
(Probably there's also a complicated chemical reason for current limiting that I don't fully grasp)