Project Eulerをワンライナーで解いてみる。
間違っていたらコメントください。
問題
ピタゴラス数(ピタゴラスの定理を満たす自然数)とは $a < b < c$ で以下の式を満たす数の組である.
$a^2 + b^2 = c^2$
例えば, $3^2 + 4^2 = 9 + 16 = 25 = 5^2$ である.
$a + b + c = 1000$ となるピタゴラスの三つ組が一つだけ存在する.
これらの積 $abc$ を計算しなさい.
解答
seq 1000 |
awk '{for(i=$1;i<=1000;i++){print sqrt($1^2+i^2),$1,i}}' |
awk '$1+$2+$3==1000{print $1*$2*$3}'
31875000
最初は数学的に紙と鉛筆で解こうと思ったが、途中でよくわからなくなった。。
ワンライナーでやったらすぐ終わったよ。。
答え合わせ
こちらのサイト様と一致していればOKとした。
Python で Project Euler #9「特別なピタゴラス数」