Project Euler 63

{i}{n}乗の対数(底10)をとることを考えます.{(i,n\in \mathbf{N})}
それによって{i^n}の桁数が分かるので,
{n - 1 \leq n\log i < n}
を満たせば良いと分かります.右辺より,
{\log i < 1 \Leftrightarrow i < 10}
左辺より,
{\log i \geq 1-\frac{1}{n} \Leftrightarrow i \geq \lceil 10^{1-\frac{1}{n}} \rceil (\because i \in \mathbf{N})}
{\therefore \lceil 10^{1-\frac{1}{n}} \rceil \leq i < 10}
この左辺は,{n \rightarrow}大で,10に近づき,9.0を超えると上の不等式を満たす{i}は存在しなくなります.
{\lceil 10^{1-\frac{1}{n}} \rceil > 9.0}
{\therefore n > 21.8}
を得ます.従って,{1 \leq n \leq 21}について,3つ上の不等式を満たす{i}の個数を足し合わせれば答えが求まります.

https://ideone.com/25WkBn