Find an integer such that when squared, the first 4 digits are '6666'.
Solution 1:
You need $6666\times 10^k \leq x^2<6667\times 10^k$
If $k=2n$ is even, then this means:
$$10^{n}\sqrt{6666}\leq x\leq 10^{n}\sqrt{6667}$$
$\sqrt{6666}\approx 81.646$ and $\sqrt{6667}\approx 81.652$, so we can see that for $n=2$, $x=8165$ will work.
If $k=2n+1$ is odd, then you need:
$$10^{n}\sqrt{66660}\leq x\leq 10^{n}\sqrt{66670}$$
$\sqrt{66660}\approx 258.186$ and $\sqrt{66670}\approx 258.205$ and we get for $n=1$ that $x=2582$.
If you want to start with $D$, note that $\sqrt{D+1}-\sqrt{D}=\frac{1}{\sqrt{D+1}+\sqrt{D}} > \frac{1}{\sqrt{4D+2}}$. So at the very least, if $k>\log_{10}(4D+2)$ then $10^{k/2}\sqrt{D+1}-10^{k/2}\sqrt{D}>1$ so there must be an integer $x$ such that:
$$10^{k/2}\sqrt{D}\leq x<10^{k/2}\sqrt{D+1}$$ This technique would work for cubes, too, but you'd have to separate the question into three cases, $k=3n,k=3n+1,k=3n+2$. For $m$th powers, you consider $m$ cases.
For example, the smallest integer such that $x^7$ starts with $6666$ is $x=4888$.
Solution 2:
Theoretically, you are essentially using the formula $\sqrt{100x}=10\sqrt{x}$.
Your iterations are, essentially, first compute $\sqrt{6666}=81.6455...$. You multiply exponentials of $10$ to get larger numbers, and apparently the second just works: $8165^2=66667225$.
There are two types of solutions: numbers starting from $\sqrt{6666}=81.6455...$ and numbers starting from $\sqrt{66660}=258.1859\dots$ and your answer is the second case. The "third" case would be numbers starting from $\sqrt{666600}$ which is just the same as the first case.
Solution 3:
I'm both a programmer and a (quite amateur) mathematician. I wrote this python 3 program before looking at the answers just for fun (I hand calculated that the answer must start with either 81 or 25):
from math import sqrt
def f(n):
for d in range(10):
for i in range(10**d):
x = n * 10**d + i
y = x * x
if str(y)[0:4] == '6666':
print (x, y)
return
if __name__ == '__main__':
f(81)
f(25)
prints out:
2582 6666724
8165 66667225
and runs well under a tenth of a second on my laptop.