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

問題

次の式は, $1^1 + 2^2 + 3^3 + ... + 10^{10} = 10405071317$ である.

では, $1^1 + 2^2 + 3^3 + ... + 1000^{1000}$ の最後の$10$桁を求めよ.

解答

seq 1000 |
awk -M '{s+=$1^$1}END{print substr(s,length(s)-10+1,10)}'
9110846700

-Mオプションが使えない環境用

seq 1000 |
awk '{a=1;for(i=1;i<=$1;i++){a=substr(a*$1,length(a*$1)-10+1,10)};s+=a}END{print substr(s,length(s)-10+1,10)}'
9110846700

答え合わせ

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

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.