vibeni,
Here's a sneaky formula for finding square roots.
G = (g + n/g)/2
Where n = 36bit input number and g = your 1st guess.
Then after you calculate the 1st square_root (G) result, you must put this result back into the formula as 'g' and reiterate to get the next square_root result. You must do this multiple times until you are satisfied with the precision of the result. I would suggest setting up a spreadsheet to see how many iterations it will take to get a precise answer depending on what you choose as your 1st guess. You can reduce your iterations by making an intelligent input as to your first guess (this would include evaluating where your MSB is in your 36bit input number and determining the order of the expected result).
If you really want to get tricky here's the code for finding higher order roots of any number.
G = ((m1)*g + n/g^(m1))/m where m=root_order
Scott C
