(This answer addresses the question in the original title, but my comment above shows that they give the same answer.)
Hint: $$(100-1)^{100} \equiv \sum_{k=0}^{100} \binom{100}{k} (-1)^{100-k} 100^k \equiv \underbrace{-\binom{100}{1} 100}_{\equiv 0 \pmod{1000}} + 1 \equiv 1 \pmod{1000}$$
As the alternative answer points out, your argument is correct, but there's a simpler and more straightforward answer by considering the binominal expansion of $(100-1)^{100}$. Since you only want the last three digits, only the terms $100^k$ with $k = 0,1$ remains.
This approach is much simpler than
- justifying $99^{100} \equiv 19^{100} \pmod{1000}$
- reducing the exponent $99^{100}$ to $361^{50}$
- considering the binomial expansion of $(360+1)^{50}$, whose coefficients $\binom{50}{k}$ gives less trailing zeros. (i.e. more terms needed $\implies$ slower calculations)
pow(99,100,1000)
in a Python shell, e.g. – Henno Brandsma Apr 07 '18 at 10:27BigInt(99)^100
andBigInt(19)^100
. – GNUSupporter 8964民主女神 地下教會 Apr 07 '18 at 10:35