What you call "...a lot of mathematical sophistication..."
isn't really required. Setting y = (1+i)**N and solving for
y is easy:
y = pmt/(pmt - P*i)
All the "sophistication" required now is taking logarithms:
N*log(1+i) = log(pmt/(pmt - P*i))
or
N = log(pmt/(pmt - P*i))/log(1+i)