Project Eulerをワンライナーで解いてみる。
間違っていたらコメントください。
問題
左右どちらから読んでも同じ値になる数を回文数という. 2桁の数の積で表される回文数のうち, 最大のものは $9009 = 91 × 99$ である.
では, 3桁の数の積で表される回文数の最大値を求めよ.
解答
前提:求める値は6桁であろう(ループを少なくしたかった)。
seq 900 999 |
awk '{for(i=900;i<=999;i++){printf("%d ",i*$1)}}' |
xargs -n1 |
sed -r 's/\B/ /g' |
awk '$3$2$1==$4$5$6{print $1$2$3$4$5$6}' |
sort -u |
tail -1
906609
awkの部分をうまく書き直したい。。
[2017/10/03追記]
taramさんから教えて頂いた解答
seq 900 999 |
awk '{for(i=$1;i<=999;i++){print i*$1}}' |
awk -v FS= '$3$2$1==$4$5$6{print $1$2$3$4$5$6}' |
sort -u |
tail -1
906609
スッキリしました(*^_^*)
答え合わせ
こちらのサイト様と一致していればOKとした。
http://kingyojima.net/pje/004.html