https://goo.gl/unjXS Problem 32 - PukiWiki
(seq 12345 98765 | sed 's/../& /';seq 12345 98765 | sed 's/./& /') | awk '{print $0,$1*$2}'| awk '$3<10000' | grep 1 | grep 2 | grep 3 | grep 4 | grep 5 | grep 6 | grep 7 | grep 8 | grep 9 | awk '{a[$3]=a[$3]", "$1" "$2}END{for(v in a){print v, a[v]}}' | awk '{a+=$1}END{print a}'
45228 real 0m0.334s user 0m0.350s sys 0m0.130s
9桁のパンデジタル数で収まるには、
の2通りのみである
上記2通りの掛け算の組み合わせを全部出し、9桁のパンデジタル数になっているものを抽出
# 1桁*4桁、2桁*3桁の組み合わせを列挙
(seq 12345 98765 | sed 's/../& /';seq 12345 98765 | sed 's/./& /') |
# 掛け算
awk '{print $0,$1*$2}'|
# 掛け算して4桁になるもの(全部で9桁になるもの)を抽出
awk '$3<10000' |
# パンデジタル数を抽出
grep 1 | grep 2 | grep 3 | grep 4 | grep 5 | grep 6 | grep 7 | grep 8 | grep 9 |
# 積が重複しているものを束ねる
awk '{a[$3]=a[$3]", "$1" "$2}END{for(v in a){print v, a[v]}}' |
# 積の和を求める
awk '{a+=$1}END{print a}'