I'm willing to share the basics of my approach, just not the fine details.
I am using the Newton-Raphson method to find the root. It requires all four simple algebraic operators: addition, subtraction, multiplication, and division. I already had the bigint multiplication worked out from the factorial challenge, although I modified it for this challenge. The addition and subtraction were fairly simple. Division was the biggest challenge, and it took a while to make it efficient.
My times are under 20 msec after a lot of work.
I would like to know if anybody is using a different method with success.
If anybody is looking for a place to start, I would recommend looking at my solution for the factorial challenge. It provides an idea of how to store the large numbers and manipulate them.
For benchmark tests, I am curious about the following times: square root of a 10000 digit number, 255th root of a 10000 digit number (should be much faster). For testing, it is convenient to hold one value constant (x, n, or y) and change another to see the effect.
Make sure you look at some difficult cases, also. Roots with all 9's, roots with almost all zeroes and just a couple of ones well spaced.
I have another challenge in the works, also. It involves prime factorization of large numbers - I really enjoy the large number challenges. The challenge for this one will be generating large prime numbers efficiently more than the large number math.
Bruce
Bruce Ammons
Ammons Engineering