#author("2017-10-11T21:13:47+09:00","default:nobuoki","nobuoki")
* 問題(和訳) [#c6df34d3]
Problem 29 「個別のべき乗」
https://goo.gl/A6g1A

* 回答例 [#lfe9c2fe]
echo {2..100}^{2..100}$'\n' | BC_LINE_LENGTH=0 bc | awk '{a[$1]++}END{for(v in a){print v}}' | wc -l

* 実行結果 [#m6066550]
#pre{{
9183

real    0m0.235s
user    0m0.160s
sys     0m0.070s
}}

* 解説 [#y5a33556]
全ての a^b を生成し、 bc で計算、結果を awk, wc で集計します
ここでは bash のブレース展開を使っていますが、
awk等でべた書きした方が移植性は高いはずです

#prism(bash){{{{
#!/bin/bash
# bash のブレース展開で a^b を全て書き出す
echo {2..100}^{2..100}$'\n' |
# bc で a^b を計算、出力は改行しない(BC_LINE_LENGTH=0)
BC_LINE_LENGTH=0 bc |
# awk で重複を取り除く
awk '{a[$1]++}END{for(v in a){print v}}' |
# 行数を数える
wc -l
}}}}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS