What is an efficent way (not using any computer programs and such) to find last $m$ digits of some terrible looking sum, for example I don't know $$1^{1000}+2^{1000}+3^{1000}+\ldots+(10^{1000})^{1000}?$$ And let's say that also $m=1000$. I think I know how to approach this problem, but it seems very hard (rather near impossible) and I would like to find something "nice", if that is even possible. Either way it probably requires some modular arithmetics.
Thanks a lot!
There is no "one-size-fits-all" general algorithm, but there are a few principles that may help. Here are some (please feel free to add more in comments):
By the way, in the case at hand, using Faulhaber's formula we can solve the problem: $$\sum_{j=1}^{10^{1000}} j^{1000} \equiv 3 \times 10^{999} \mod 10^{1000}$$
EDIT: Faulhaber expresses $\sum_{j=1}^{10^{1000}} j^{1000}$ as a polynomial in $n = 10^{1000}$ with $502$ nonzero terms, but none of the denominators are divisible by $2^2$ or $5^2$, so only the term in $n^1$ has a chance to be nonzero mod $n$: this term is $B_{1000} n$ where $B_{1000}$ is the $1000$'th Bernoulli number. The result is $10^{1000} B_{1000} \mod 10^{1000} = 3 \times 10^{999}$.