Do you really have to do a search
for numbers greater than the sqrt(N)? (See Re: OT: Finding Factor Closest To Square Root
for my approach). Certainly you don't have to go beyond 2*sqrt(N) on the ++
side. In fact I'm currently thinking the closest factor has to be less than sqrt(N), eliminating any checking for factors greater than sqrt(N). I'd be interested to see if someone could construct a counter-example (a number where the closest factor to sqrt(N) is greater than sqrt(N)).
-- All code is 100% tested and functional unless otherwise noted.