問題(和訳)

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2080

回答例

seq 100 | awk 'int(sqrt($1))^2!=$1' | sed 's/^/scale=100;sqrt(/;s/$/)/'|BC_LINE_LENGTH=0 bc |sed 's/./& /g;s/\.//' | awk '{for(i=1;i<=100;i++){a+=$i}}END{print a}'

40886

real    0m0.127s
user    0m0.130s
sys     0m0.023s 

解説

# 初めの100個の自然数
seq 100 |

# 無理数を抽出
awk 'int(sqrt($1))^2!=$1' |

# bcで100桁を算出
sed 's/^/scale=100;sqrt(/;s/$/)/'|BC_LINE_LENGTH=0 bc |

# 100桁をスペース区切りにする(小数点は削除する)
sed 's/./& /g;s/\.//' |

# 100桁分、足し算する
awk '{for(i=1;i<=100;i++){a+=$i}}END{print a}'

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-03-24 (日) 07:44:02