There is a method i used to find about 4 decimals which works pretty easy, as soon as you understand it...
and you need to now the basic squares from 1..10
You make use of sqr(n+k) = sqr(n) + 2*k*n + sqr(k)
this is simply pythagoras, now we use that for step by step approximation.
you start with the number you want the root of, lets say 10;
the closest lower square is 9 (sqr(n) in the formula), so the root must be 3.xxx (n=3 ; k=0.xxx)
now you subtract the low square from the starting square, 10 - 9 = 1
because of 2*k*n you divide 100times the difference by 20*n and round it down to integer, which is your next decimal (most probably..)
that would be (100*1)/(20*3)~1
since you know the approximate size i always leave commas away by multiplying by 10, resp. 100
this makes the new n of 31 which makes sqr(30) + 2*30 + sqr(1) = 961
the following illustration is the easiest way for me to understand:
10 ~ 3
-9 00 + 60*1 + sqr(1) = 961
1 00 : 60 ~ 1
1000 ~ 31
-961 00 + 620*6 + sqr(6) = 96100 + 3720 + 36 = 99856
39 00 : 620 ~ 6
100000 ~ 316
- 99856 00 + 6320*2 + sqr(2) = 9998244
144 00 : 6320 ~ 2
in case any of those numbers to the far right go above 1000, you just have to subtract 1 from the multiplier decimal (here 1 / 6 / 2)
this is for the fact that for finding the digit itself you ignore its own square that is added in the end, thus it happens that it's one too high.
i did it in this order:
1000 ~ 31. // 100times starting number and low root n from before
- 961. // subtract sqr(n)
39 00 : 620 ~ 6 // divide 100*difference by 20*n, this is your new digit
1000 ~ 31
- 961 00 + 620*6 + 36 // add up 100*sqr(n) + 20*n*quotient + sqr(quotient), this is your new sqr(n)
39 00 : 620 ~ 6
--> new n=316, sqr(n)=99856
This way you could go on infinitely and find digit after digit, but if you do it mentally you get stuck after 3 or 4 digits, which is ok since you asked for only 1 in the first place :)
im really curious if anyone will understand this xD
the idea came to me once in a boring bus drive
greetz
Thomas from Switzerland
I'm sorry I was in the middle of calculations while writing this
It's not pythagoras (embarrassing), it's just the binomial formula where "a" is the 'low root' with cut off decimals and "b" is the upcoming decimal
your goal is hitting the number you want the root of (10), so a^2 + 2ab + b^2 ~ 10, and what you know is a = 3
subtracting a^2=9 gives 2ab + b^2 = 1
since b is relatively small you ignore it for now
some rearranging and expanding makes b = 1/2a = 0.167
now you cut off all but one decimal and multiply by 10 to get the next decimal (0.167 --> 0.1 --> 1)
a^2 + 2ab + b^2 = 9 + 0.6 + 0.01 = 9.61 = 3.1^2
adding up "a" and "b" (or 10times) is 31, the new "a"
this can be repeatet with a=31, a=316, and so on
what i think is the advantage of this method, is that once you get used to doing it, you don't need to keep the number you want the root of or any of those squares in between the steps, you only have to know the difference and the root, here that would be:
low root - square difference to 10
3 - 1
31 - 39
316 - 144