Bash
ProjectEuler
数学

Project Euler Q56 【もっとべき乗の数字和】

Project Eulerをワンライナーで解いてみる。
間違っていたらコメントください。

問題

$Googol (10^{100})$は非常に大きな数である: $1$の後に$0$が$100$個続く. $100^{100}$は想像を絶する. $1$の後に$0$が$200$回続く. その大きさにも関わらず, 両者とも数字和 ( 桁の和 ) は$1$である.

$a, b < 100$ について自然数 $a^b$ を考える. 数字和の最大値を答えよ.

解答

time seq 99 |
awk -M '{for(i=1;i<=99;i++){print $1^i}}' |
awk -v FS= '{for(i=1;i<=NF;i++){s[NR]+=$i};print s[NR]}' |
sort -k1,1nr |
head -1
972

real    0m0.536s
user    0m0.543s
sys     0m0.137s

ただ計算すればいいので特にコメントはない。
awk-Mオプションが使用できる環境が必要。

答え合わせ

こちらのサイト様と一致していればOKとした。
http://kingyojima.net/pje/056.html